diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2015-02-17 15:33:09 -0800 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2015-02-17 15:33:09 -0800 |
commit | 6e9fbb66d86d2020ea31ed7c3f7492b852664d38 (patch) | |
tree | dd117aa3da5d8c51c8d22cf1ec77a79d17326d2a | |
parent | 497cead6e7df8a26ae5b7d66713be68cdc7f2c36 (diff) | |
parent | ae9b20c2f1fa0dd629f0da2b81435db5582ba367 (diff) | |
download | ffi-yajl-6e9fbb66d86d2020ea31ed7c3f7492b852664d38.tar.gz |
Merge pull request #43 from chef/lcg/fix-windows-check
Lcg/fix windows check
-rw-r--r-- | lib/ffi_yajl/ext.rb | 5 | ||||
-rw-r--r-- | lib/ffi_yajl/platform.rb | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/ffi_yajl/ext.rb b/lib/ffi_yajl/ext.rb index 7a84ef1..5784023 100644 --- a/lib/ffi_yajl/ext.rb +++ b/lib/ffi_yajl/ext.rb @@ -4,14 +4,17 @@ require 'ffi_yajl/encoder' require 'ffi_yajl/parser' require 'ffi' require 'libyajl2' +require 'ffi_yajl/platform' module FFI_Yajl + extend FFI_Yajl::Platform + # FIXME: DRY with ffi_yajl/ffi.rb # FIXME: extract map_library_name from FFI and stop requiring it at the top level # 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 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..6c2a498 --- /dev/null +++ b/lib/ffi_yajl/platform.rb @@ -0,0 +1,7 @@ +module FFI_Yajl + module Platform + def windows? + !!(RUBY_PLATFORM =~ /mswin|mingw|cygwin|windows/) + end + end +end |