diff options
-rw-r--r-- | lib/rubygems/dependency.rb | 47 |
1 files changed, 38 insertions, 9 deletions
@@ -4,8 +4,6 @@ # See LICENSE.txt for permissions. #++ -require 'rubygems' - ## # The Dependency class holds a Gem name and a Gem::Requirement @@ -72,7 +70,7 @@ class Gem::Dependency alias requirements_list requirement_list def normalize - ver = @version_requirement.instance_eval { @version } @version_requirements = Gem::Requirement.new([ver]) @version_requirement = nil end @@ -81,6 +79,21 @@ class Gem::Dependency "#{name} (#{version_requirements}, #{@type || :runtime})" end def ==(other) # :nodoc: self.class === other && self.name == other.name && @@ -89,15 +102,22 @@ class Gem::Dependency end ## - # Uses this dependency as a pattern to compare to the dependency +other+. - # This dependency will match if the name matches the other's name, and other - # has only an equal version requirement that satisfies this dependency. def =~(other) - return false unless self.class === other pattern = @name - pattern = /\A#{@name}\Z/ unless Regexp === pattern return false unless pattern =~ other.name @@ -111,9 +131,18 @@ class Gem::Dependency version_requirements.satisfied_by? version end - def hash # :nodoc: name.hash + type.hash + version_requirements.hash end end |