summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2015-02-17 15:33:09 -0800
committerLamont Granquist <lamont@scriptkiddie.org>2015-02-17 15:33:09 -0800
commit6e9fbb66d86d2020ea31ed7c3f7492b852664d38 (patch)
treedd117aa3da5d8c51c8d22cf1ec77a79d17326d2a
parent497cead6e7df8a26ae5b7d66713be68cdc7f2c36 (diff)
parentae9b20c2f1fa0dd629f0da2b81435db5582ba367 (diff)
downloadffi-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.rb5
-rw-r--r--lib/ffi_yajl/platform.rb7
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