summaryrefslogtreecommitdiff
path: root/lib/rubygems
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2019-09-24 17:35:00 +0200
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2019-09-26 17:48:01 +0900
commit4f87a1583dce25749c0492146ef78fcb0319ccd2 (patch)
tree9f47bc533970179b938d95dad38f12b9c0926391 /lib/rubygems
parent6134fd7a646842ca67081cd07a182642307138bd (diff)
[rubygems/rubygems] Introduce default prerelease requirement
https://github.com/rubygems/rubygems/commit/506c5bce49
Diffstat (limited to 'lib/rubygems')
-rwxr-xr-xlib/rubygems/core_ext/kernel_require.rb2
-rw-r--r--lib/rubygems/installer.rb2
-rw-r--r--lib/rubygems/requirement.rb13
3 files changed, 14 insertions, 3 deletions
diff --git a/lib/rubygems/core_ext/kernel_require.rb b/lib/rubygems/core_ext/kernel_require.rb
index 5516933a5c..858f0998a0 100755
--- a/lib/rubygems/core_ext/kernel_require.rb
+++ b/lib/rubygems/core_ext/kernel_require.rb
@@ -66,7 +66,7 @@ module Kernel
if spec = Gem.find_unresolved_default_spec(path)
begin
- Kernel.send(:gem, spec.name, "#{Gem::Requirement.default}.a")
+ Kernel.send(:gem, spec.name, Gem::Requirement.default_prerelease)
rescue Exception
RUBYGEMS_ACTIVATION_MONITOR.exit
raise
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
index a40deefc5a..898f6e46a1 100644
--- a/lib/rubygems/installer.rb
+++ b/lib/rubygems/installer.rb
@@ -776,7 +776,7 @@ class Gem::Installer
require 'rubygems'
-version = "#{Gem::Requirement.default}.a"
+version = "#{Gem::Requirement.default_prerelease}"
str = ARGV.first
if str
diff --git a/lib/rubygems/requirement.rb b/lib/rubygems/requirement.rb
index b72921e72c..1e17fc2dc2 100644
--- a/lib/rubygems/requirement.rb
+++ b/lib/rubygems/requirement.rb
@@ -32,11 +32,16 @@ class Gem::Requirement
PATTERN = /\A#{PATTERN_RAW}\z/.freeze
##
- # The default requirement matches any version
+ # The default requirement matches any non-prerelease version
DefaultRequirement = [">=", Gem::Version.new(0)].freeze
##
+ # The default requirement matches any version
+
+ DefaultPrereleaseRequirement = [">=", Gem::Version.new("0.a")].freeze
+
+ ##
# Raised when a bad requirement is encountered
class BadRequirementError < ArgumentError; end
@@ -73,6 +78,10 @@ class Gem::Requirement
new '>= 0'
end
+ def self.default_prerelease
+ new '>= 0.a'
+ end
+
###
# A source set requirement, used for Gemfiles and lockfiles
@@ -101,6 +110,8 @@ class Gem::Requirement
if $1 == ">=" && $2 == "0"
DefaultRequirement
+ elsif $1 == ">=" && $2 == "0.a"
+ DefaultPrereleaseRequirement
else
[$1 || "=", Gem::Version.new($2)]
end