Sha256: ecb4ba1e4f3615948c6a26c9d93f3ca76a0dcb19560d48a320f85c52d8881e94

Contents?: true

Size: 784 Bytes

Versions: 8

Compression:

Stored size: 784 Bytes

Contents

require 'rbconfig'

# Utility to load native binaries on Java CLASSPATH
class NativeFolder
  attr_reader :os, :bit

  WIN_FORMAT = 'windows%d'.freeze
  LINUX_FORMAT = 'linux%d'.freeze
  WIN_PATTERNS = [
    /bccwin/i,
    /cygwin/i,
    /djgpp/i,
    /ming/i,
    /mswin/i,
    /wince/i
  ].freeze

  def initialize
    @os = RbConfig::CONFIG['host_os'].downcase
    @bit = java.lang.System.get_property('os.arch') =~ /64/ ? 64 : 32
  end

  def name
    return 'macosx' if os =~ /darwin/ || os =~ /mac/
    return format(WIN_FORMAT, bit) if WIN_PATTERNS.any? { |pat| pat =~ os }
    return format(LINUX_FORMAT, bit) if os =~ /linux/
  end

  def extension
    return '*.so' if os =~ /linux/
    return '*.dll' if WIN_PATTERNS.any? { |pat| pat =~ os }
    '*.dylib' # MacOS
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
jruby_art-1.4.9 lib/jruby_art/native_folder.rb
jruby_art-1.4.8 lib/jruby_art/native_folder.rb
jruby_art-1.4.7 lib/jruby_art/native_folder.rb
jruby_art-1.4.6 lib/jruby_art/native_folder.rb
jruby_art-1.4.5 lib/jruby_art/native_folder.rb
jruby_art-1.4.4 lib/jruby_art/native_folder.rb
jruby_art-1.4.3 lib/jruby_art/native_folder.rb
jruby_art-1.4.2 lib/jruby_art/native_folder.rb