From 8a2818baad029bc8e2cc3daafaafe8d3c095b87a Mon Sep 17 00:00:00 2001 From: Samuel Giddins Date: Tue, 2 Feb 2016 13:00:09 -0600 Subject: [CurrentRuby] Refactor --- lib/bundler/current_ruby.rb | 201 ++++++++------------------------------------ 1 file changed, 33 insertions(+), 168 deletions(-) (limited to 'lib/bundler/current_ruby.rb') 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 -- cgit v1.2.1