diff options
author | Homu <homu@barosl.com> | 2016-02-03 16:38:02 +0900 |
---|---|---|
committer | Homu <homu@barosl.com> | 2016-02-03 16:38:02 +0900 |
commit | 0647f9645add95a9ec522b0f8a880b1745d67112 (patch) | |
tree | 5657103a3e1628b0ddc29358a36c5ddecf78a356 /lib/bundler | |
parent | 3cb799ddb4d214d5f75be693abe9462b0f97d29d (diff) | |
parent | 8a2818baad029bc8e2cc3daafaafe8d3c095b87a (diff) | |
download | bundler-0647f9645add95a9ec522b0f8a880b1745d67112.tar.gz |
Auto merge of #4267 - bundler:seg-current-ruby, r=indirect
[CurrentRuby] Refactor
Closes #4266.
Diffstat (limited to 'lib/bundler')
-rw-r--r-- | lib/bundler/current_ruby.rb | 201 |
1 files changed, 33 insertions, 168 deletions
diff --git a/lib/bundler/current_ruby.rb b/lib/bundler/current_ruby.rb index a7fa2f3a89..6180285942 100644 --- a/lib/bundler/current_ruby.rb +++ b/lib/bundler/current_ruby.rb @@ -8,94 +8,38 @@ module Bundler end class CurrentRuby - def on_18? - RUBY_VERSION =~ /^1\.8/ - end - - def on_19? - RUBY_VERSION =~ /^1\.9/ - end - - def on_20? - RUBY_VERSION =~ /^2\.0/ - end - - def on_21? - RUBY_VERSION =~ /^2\.1/ - end - - def on_22? - RUBY_VERSION =~ /^2\.2/ - end - - def on_23? - RUBY_VERSION =~ /^2\.3/ - end - - def on_2? - on_20? || on_21? || on_22? || on_23? - end + KNOWN_MINOR_VERSIONS = %w( + 1.8 + 1.9 + 2.0 + 2.1 + 2.2 + 2.3 + 2.4 + ).freeze + + KNOWN_MAJOR_VERSIONS = KNOWN_MINOR_VERSIONS.map {|v| v.split(".", 2).first }.uniq.freeze + + KNOWN_PLATFORMS = %w( + jruby + maglev + mingw + mri + mswin + mswin64 + rbx + ruby + x64_mingw + ).freeze def ruby? !mswin? && (!defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby" || RUBY_ENGINE == "rbx" || RUBY_ENGINE == "maglev") end - def ruby_18? - ruby? && on_18? - end - - def ruby_19? - ruby? && on_19? - end - - def ruby_20? - ruby? && on_20? - end - - def ruby_21? - ruby? && on_21? - end - - def ruby_22? - ruby? && on_22? - end - - def ruby_23? - ruby? && on_23? - end - - def ruby_2? - ruby? && on_2? - end - def mri? !mswin? && (!defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby") end - def mri_18? - mri? && on_18? - end - - def mri_19? - mri? && on_19? - end - - def mri_20? - mri? && on_20? - end - - def mri_21? - mri? && on_21? - end - - def mri_22? - mri? && on_22? - end - - def mri_23? - mri? && on_23? - end - def rbx? ruby? && defined?(RUBY_ENGINE) && RUBY_ENGINE == "rbx" end @@ -104,14 +48,6 @@ module Bundler defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby" end - def jruby_18? - jruby? && on_18? - end - - def jruby_19? - jruby? && on_19? - end - def maglev? defined?(RUBY_ENGINE) && RUBY_ENGINE == "maglev" end @@ -120,100 +56,29 @@ module Bundler Bundler::WINDOWS end - def mswin_18? - mswin? && on_18? - end - - def mswin_19? - mswin? && on_19? - end - - def mswin_20? - mswin? && on_20? - end - - def mswin_21? - mswin? && on_21? - end - - def mswin_22? - mswin? && on_22? - end - - def mswin_23? - mswin? && on_23? - end - def mswin64? Bundler::WINDOWS && Gem::Platform.local.os == "mswin64" && Gem::Platform.local.cpu == "x64" end - def mswin64_19? - mswin64? && on_19? - end - - def mswin64_20? - mswin64? && on_20? - end - - def mswin64_21? - mswin64? && on_21? - end - - def mswin64_22? - mswin64? && on_22? - end - - def mswin64_23? - mswin64? && on_23? - end - def mingw? Bundler::WINDOWS && Gem::Platform.local.os == "mingw32" && Gem::Platform.local.cpu != "x64" end - def mingw_18? - mingw? && on_18? - end - - def mingw_19? - mingw? && on_19? - end - - def mingw_20? - mingw? && on_20? - end - - def mingw_21? - mingw? && on_21? - end - - def mingw_22? - mingw? && on_22? - end - - def mingw_23? - mingw? && on_23? - end - def x64_mingw? Bundler::WINDOWS && Gem::Platform.local.os == "mingw32" && Gem::Platform.local.cpu == "x64" end - def x64_mingw_20? - x64_mingw? && on_20? - end - - def x64_mingw_21? - x64_mingw? && on_21? - end - - def x64_mingw_22? - x64_mingw? && on_22? - end + (KNOWN_MINOR_VERSIONS + KNOWN_MAJOR_VERSIONS).each do |version| + trimmed_version = version.tr(".", "") + define_method(:"on_#{trimmed_version}?") do + RUBY_VERSION.start_with?("#{version}.") + end - def x64_mingw_23? - x64_mingw? && on_23? + KNOWN_PLATFORMS.each do |platform| + define_method(:"#{platform}_#{trimmed_version}?") do + send(:"#{platform}?") && send(:"on_#{trimmed_version}?") + end + end end end end |