diff options
Diffstat (limited to 'spec/bundler/support/platforms.rb')
| -rw-r--r-- | spec/bundler/support/platforms.rb | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/spec/bundler/support/platforms.rb b/spec/bundler/support/platforms.rb new file mode 100644 index 0000000000..56a0843005 --- /dev/null +++ b/spec/bundler/support/platforms.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true + +module Spec + module Platforms + def not_local + generic_local_platform == Gem::Platform::RUBY ? "java" : Gem::Platform::RUBY + end + + def local_platform + Bundler.local_platform + end + + def generic_local_platform + Gem::Platform.generic(local_platform) + end + + def local_tag + if Gem.java_platform? + :jruby + elsif Gem.win_platform? + :windows + else + :ruby + end + end + + def not_local_tag + [:jruby, :windows, :ruby].find {|tag| tag != local_tag } + end + + def local_ruby_engine + RUBY_ENGINE + end + + def local_engine_version + RUBY_ENGINE == "ruby" ? Gem.ruby_version : RUBY_ENGINE_VERSION + end + + def not_local_engine_version + case not_local_tag + when :ruby, :windows + 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 + + def default_platform_list(*extra, defaults: default_locked_platforms) + defaults.concat(extra).map(&:to_s).uniq + end + + def lockfile_platforms(*extra, defaults: default_locked_platforms) + platforms = default_platform_list(*extra, defaults: defaults) + platforms.sort.join("\n ") + end + + def default_locked_platforms + [local_platform, generic_default_locked_platform].compact + end + + def generic_default_locked_platform + return unless Bundler::MatchPlatform.generic_local_platform_is_ruby? + + Gem::Platform::RUBY + end + end +end |
