diff options
-rw-r--r-- | lib/ffi_yajl/ext.rb | 3 | ||||
-rw-r--r-- | lib/ffi_yajl/platform.rb | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/ffi_yajl/ext.rb b/lib/ffi_yajl/ext.rb index 7a84ef1..0d0faf3 100644 --- a/lib/ffi_yajl/ext.rb +++ b/lib/ffi_yajl/ext.rb @@ -4,6 +4,7 @@ require 'ffi_yajl/encoder' require 'ffi_yajl/parser' require 'ffi' require 'libyajl2' +require 'ffi_yajl/platform' module FFI_Yajl # FIXME: DRY with ffi_yajl/ffi.rb @@ -11,7 +12,7 @@ module FFI_Yajl # so that the C-library can be installed without FFI libname = ::FFI.map_library_name("yajl") # awful windows patch, but there is an open issue to entirely replace FFI.map_library_name already - libname = "libyajl.so" if libname == "yajl.dll" + libname = "libyajl.so" if Platform::windows? libpath = File.expand_path(File.join(Libyajl2.opt_path, libname)) libpath.gsub!(/dylib/, 'bundle') libpath = ::FFI.map_library_name("yajl") unless File.exist?(libpath) diff --git a/lib/ffi_yajl/platform.rb b/lib/ffi_yajl/platform.rb new file mode 100644 index 0000000..bde716d --- /dev/null +++ b/lib/ffi_yajl/platform.rb @@ -0,0 +1,5 @@ +module Platform + def self.windows? + !!(RUBY_PLATFORM =~ /mswin|mingw|cygwin|windows/) + end +end
\ No newline at end of file |