summaryrefslogtreecommitdiff
path: root/lib/bundler
diff options
context:
space:
mode:
authorHomu <homu@barosl.com>2016-02-03 16:38:02 +0900
committerHomu <homu@barosl.com>2016-02-03 16:38:02 +0900
commit0647f9645add95a9ec522b0f8a880b1745d67112 (patch)
tree5657103a3e1628b0ddc29358a36c5ddecf78a356 /lib/bundler
parent3cb799ddb4d214d5f75be693abe9462b0f97d29d (diff)
parent8a2818baad029bc8e2cc3daafaafe8d3c095b87a (diff)
downloadbundler-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.rb201
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