module FFI_Yajl::MapLibraryName
def dlopen_yajl_library
- Api: - private
def dlopen_yajl_library found = false ( expanded_library_names + library_names ).each do |libname| begin dlopen(libname) found = true break rescue ArgumentError end end raise "cannot find yajl library for platform" unless found end
def expanded_library_names
-
(Array
- Array of full paths to libyajl2 gem libraries)
Other tags:
- Api: - private
def expanded_library_names library_names.map do |libname| pathname = File.expand_path(File.join(Libyajl2.opt_path, libname)) pathname if File.file?(pathname) end.compact end
def ffi_open_yajl_library
- Api: - private
def ffi_open_yajl_library found = false expanded_library_names.each do |libname| begin ffi_lib libname found = true rescue LoadError end end ffi_lib "yajl" unless found end
def host_os
-
(Array
- lower case ruby host_os string)
Other tags:
- Api: - private
def host_os RbConfig::CONFIG["host_os"].downcase end
def library_names
-
(Array
- Array of yajl library names for platform)
Other tags:
- Api: - private
def library_names case host_os when /mingw|mswin/ [ "libyajl.so", "yajl.dll" ] when /cygwin/ [ "libyajl.so", "cygyajl.dll" ] when /darwin/ [ "libyajl.bundle", "libyajl.dylib" ] else [ "libyajl.so" ] end end