summaryrefslogtreecommitdiff
path: root/lib/rubygems/dependency.rb
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-10-30 06:32:48 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-10-30 06:32:48 +0000
commit9a21c28426e1021afd0f4d7314d707d578f60256 (patch)
treead567ed7fe9d9cb24c9877070cad689a90cd8f15 /lib/rubygems/dependency.rb
parentf4b623f780b0688ebc4c99e8c27203d3e950f014 (diff)
* lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update
rubygems to 2.6.8. Release note of 2.6.8: https://github.com/rubygems/rubygems/commit/9fb8880976f5ab998912898b091d88aa10eb1d4a git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56525 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/dependency.rb')
-rw-r--r--lib/rubygems/dependency.rb11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/rubygems/dependency.rb b/lib/rubygems/dependency.rb
index ecfd0b7909..bbdab7ccfa 100644
--- a/lib/rubygems/dependency.rb
+++ b/lib/rubygems/dependency.rb
@@ -317,13 +317,16 @@ class Gem::Dependency
end
def to_spec
- matches = self.to_specs
-
- active = matches.find { |spec| spec && spec.activated? }
+ matches = self.to_specs.compact
+ active = matches.find { |spec| spec.activated? }
return active if active
- matches.delete_if { |spec| spec.nil? || spec.version.prerelease? } unless prerelease?
+ return matches.first if prerelease?
+
+ # Move prereleases to the end of the list for >= 0 requirements
+ pre, matches = matches.partition { |spec| spec.version.prerelease? }
+ matches += pre if requirement == Gem::Requirement.default
matches.first
end