95 lines
1.7 KiB
Ruby
95 lines
1.7 KiB
Ruby
module Spec
|
|
module Platforms
|
|
include Bundler::GemHelpers
|
|
|
|
def rb
|
|
Gem::Platform::RUBY
|
|
end
|
|
|
|
def mac
|
|
Gem::Platform.new('x86-darwin-10')
|
|
end
|
|
|
|
def java
|
|
Gem::Platform.new([nil, "java", nil])
|
|
end
|
|
|
|
def linux
|
|
Gem::Platform.new(['x86', 'linux', nil])
|
|
end
|
|
|
|
def mswin
|
|
Gem::Platform.new(['x86', 'mswin32', nil])
|
|
end
|
|
|
|
def mingw
|
|
Gem::Platform.new(['x86', 'mingw32', nil])
|
|
end
|
|
|
|
def x64_mingw
|
|
Gem::Platform.new(['x64', 'mingw32', nil])
|
|
end
|
|
|
|
def all_platforms
|
|
[rb, java, linux, mswin, mingw, x64_mingw]
|
|
end
|
|
|
|
def local
|
|
generic(Gem::Platform.local)
|
|
end
|
|
|
|
def not_local
|
|
all_platforms.find { |p| p != generic(Gem::Platform.local) }
|
|
end
|
|
|
|
def local_tag
|
|
if RUBY_PLATFORM == "java"
|
|
:jruby
|
|
else
|
|
:ruby
|
|
end
|
|
end
|
|
|
|
def not_local_tag
|
|
[:ruby, :jruby].find { |tag| tag != local_tag }
|
|
end
|
|
|
|
def local_ruby_engine
|
|
ENV["BUNDLER_SPEC_RUBY_ENGINE"] || (defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby")
|
|
end
|
|
|
|
def local_engine_version
|
|
return ENV["BUNDLER_SPEC_RUBY_ENGINE_VERSION"] if ENV["BUNDLER_SPEC_RUBY_ENGINE_VERSION"]
|
|
|
|
case local_ruby_engine
|
|
when "ruby"
|
|
RUBY_VERSION
|
|
when "rbx"
|
|
Rubinius::VERSION
|
|
when "jruby"
|
|
JRUBY_VERSION
|
|
else
|
|
raise BundlerError, "That RUBY_ENGINE is not recognized"
|
|
nil
|
|
end
|
|
end
|
|
|
|
def not_local_engine_version
|
|
case not_local_tag
|
|
when :ruby
|
|
not_local_ruby_version
|
|
when :jruby
|
|
"1.6.1"
|
|
end
|
|
end
|
|
|
|
def not_local_ruby_version
|
|
"1.12"
|
|
end
|
|
|
|
def not_local_patchlevel
|
|
9999
|
|
end
|
|
end
|
|
end
|