summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ffi_yajl.rb15
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/ffi_yajl.rb b/lib/ffi_yajl.rb
index a7e69d1..32de01c 100644
--- a/lib/ffi_yajl.rb
+++ b/lib/ffi_yajl.rb
@@ -4,14 +4,15 @@ require 'ffi'
module FFI_Yajl
extend FFI::Library
- begin
- # search the default paths for libyajl2
+
+ libname = FFI.map_library_name("yajl")
+ libpath = File.join(File.dirname(__FILE__), libname)
+
+ if File.file?(libpath)
+ # use our vendored version of libyajl2 if we find it installed
+ ffi_lib libpath
+ else
ffi_lib 'yajl'
- # FIXME: need to explode if we find libyajl1 accidentally
- rescue LoadError
- # use the bundled libyajl2
- libname = FFI.map_library_name("yajl")
- ffi_lib File.join(File.dirname(__FILE__), libname)
end
class YajlCallbacks < FFI::Struct