diff options
author | Samuel Giddins <segiddins@segiddins.me> | 2016-10-05 20:03:49 -0500 |
---|---|---|
committer | Samuel Giddins <segiddins@segiddins.me> | 2017-04-15 09:21:04 -0500 |
commit | 0a516eaf5bb7a9bb50189012e2552d4d3087ae60 (patch) | |
tree | 33bbf8822880f8b8a60d1cc2409b4e44e5f81a4b /lib/bundler/rubygems_ext.rb | |
parent | bcd38141ca9714fc3434f6bc2d15fba16d38f5d9 (diff) | |
download | bundler-0a516eaf5bb7a9bb50189012e2552d4d3087ae60.tar.gz |
[RubyGemsExt] Speed up Dependency#to_lockseg-spec-set-perf
Diffstat (limited to 'lib/bundler/rubygems_ext.rb')
-rw-r--r-- | lib/bundler/rubygems_ext.rb | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/bundler/rubygems_ext.rb b/lib/bundler/rubygems_ext.rb index 7293e7cfc7..a0f8fa848b 100644 --- a/lib/bundler/rubygems_ext.rb +++ b/lib/bundler/rubygems_ext.rb @@ -151,7 +151,7 @@ module Gem def to_lock out = String.new(" #{name}") - unless requirement == Gem::Requirement.default + unless requirement.none? reqs = requirement.requirements.map {|o, v| "#{o} #{v}" }.sort.reverse out << " (#{reqs.join(", ")})" end @@ -169,11 +169,16 @@ module Gem end class Requirement - # Backport of performance enhancement added to Rubygems 1.4 + # Backport of performance enhancement added to RubyGems 1.4 def none? - @none ||= (to_s == ">= 0") + # note that it might be tempting to replace with with RubyGems 2.0's + # improved implementation. Don't. It requires `DefaultRequirement` to be + # defined, and more importantantly, these overrides are not used when the + # running RubyGems defines these methods + to_s == ">= 0" end unless allocate.respond_to?(:none?) + # Backport of performance enhancement added to RubyGems 2.2 def exact? return false unless @requirements.size == 1 @requirements[0][0] == "=" |