diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2014-08-07 18:26:56 -0500 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2014-08-07 18:26:56 -0500 |
commit | 46239c54700ad1e06a6ac86eaf0fbcb141ce3eb1 (patch) | |
tree | ba2daaf200b7e40845764976c01d5f2545aa847c /lib | |
parent | ee34c3018a520bf1271fdbd85ada659900b17ba2 (diff) | |
download | ffi-yajl-46239c54700ad1e06a6ac86eaf0fbcb141ce3eb1.tar.gz |
Revert "change allow_comment default to true"
This reverts commit 199bcc2304bc032559ca0b9f82978b4ebb64fe41.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ffi_yajl/ext.rb | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/lib/ffi_yajl/ext.rb b/lib/ffi_yajl/ext.rb index 1c7486d..504cbe1 100644 --- a/lib/ffi_yajl/ext.rb +++ b/lib/ffi_yajl/ext.rb @@ -1,8 +1,13 @@ require 'rubygems' + require 'ffi_yajl/encoder' require 'ffi_yajl/parser' require 'ffi' require 'libyajl2' +begin + require 'fiddle' +rescue LoadError +end module FFI_Yajl # FIXME: DRY with ffi_yajl/ffi.rb @@ -10,20 +15,16 @@ module FFI_Yajl libpath = File.expand_path(File.join(Libyajl2.opt_path, libname)) libpath.gsub!(/dylib/, 'bundle') libpath = ::FFI.map_library_name("yajl") unless File.exist?(libpath) - - begin - # deliberately delayed require - require 'fiddle' + if defined?(Fiddle) && Fiddle.respond_to?(:dlopen) ::Fiddle.dlopen(libpath) - rescue LoadError - begin - # deliberately delayed require - require 'dl' + else + # deliberately convoluted delayed require here to avoid deprecation + # warning from requiring dl + require 'dl' + if defined?(DL) && DL.respond_to?(:dlopen) ::DL.dlopen(libpath) - rescue LoadError - # deliberately delayed require - require 'ffi_yajl/dlopen' - FFI_Yajl::Dlopen.dlopen(libpath) + else + raise "cannot find dlopen in either DL or Fiddle, cannot proceed" end end |