diff options
author | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-05-30 13:01:35 +0000 |
---|---|---|
committer | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-05-30 13:01:35 +0000 |
commit | 8da8d4b043c37b53a69803c71ff36b478d4776d0 (patch) | |
tree | 7c8cec15645e74f19c88e4eb5b210b96174c7d03 /lib/rubygems/requirement.rb | |
parent | c5cb386eba6d9a2d9a8e6ffa8c30137d0c4660c1 (diff) |
Merge RubyGems 3.0.0.beta1.
* It drop to support < Ruby 2.2
* Cleanup deprecated methods and classes.
* Mark obsoleted methods to deprecate.
* and other enhancements.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/requirement.rb')
-rw-r--r-- | lib/rubygems/requirement.rb | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/rubygems/requirement.rb b/lib/rubygems/requirement.rb index 2a60c86e69..430f351280 100644 --- a/lib/rubygems/requirement.rb +++ b/lib/rubygems/requirement.rb @@ -133,6 +133,7 @@ class Gem::Requirement @requirements = [DefaultRequirement] else @requirements = requirements.map! { |r| self.class.parse r } + sort_requirements! end end @@ -146,6 +147,7 @@ class Gem::Requirement new = new.map { |r| self.class.parse r } @requirements.concat new + sort_requirements! end ## @@ -183,11 +185,11 @@ class Gem::Requirement end def as_list # :nodoc: - requirements.map { |op, version| "#{op} #{version}" }.sort + requirements.map { |op, version| "#{op} #{version}" } end def hash # :nodoc: - requirements.sort.hash + requirements.hash end def marshal_dump # :nodoc: @@ -264,7 +266,8 @@ class Gem::Requirement end def == other # :nodoc: - Gem::Requirement === other and to_s == other.to_s + return unless Gem::Requirement === other + requirements == other.requirements end private @@ -279,6 +282,14 @@ class Gem::Requirement end end end + + def sort_requirements! # :nodoc: + @requirements.sort! do |l, r| + comp = l.last <=> r.last # first, sort by the requirement's version + next comp unless comp == 0 + l.first <=> r.first # then, sort by the operator (for stability) + end + end end class Gem::Version |