summaryrefslogtreecommitdiff
path: root/lib/rubygems/dependency.rb
diff options
context:
space:
mode:
-rw-r--r--lib/rubygems/dependency.rb47
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