summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2014-08-07 18:26:56 -0500
committerLamont Granquist <lamont@scriptkiddie.org>2014-08-07 18:26:56 -0500
commit46239c54700ad1e06a6ac86eaf0fbcb141ce3eb1 (patch)
treeba2daaf200b7e40845764976c01d5f2545aa847c /lib
parentee34c3018a520bf1271fdbd85ada659900b17ba2 (diff)
downloadffi-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.rb25
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