summaryrefslogtreecommitdiff
path: root/lib/rubygems/dependency.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/dependency.rb')
-rw-r--r--lib/rubygems/dependency.rb38
1 files changed, 32 insertions, 6 deletions
diff --git a/lib/rubygems/dependency.rb b/lib/rubygems/dependency.rb
index 351991067d..ec5d88b607 100644
--- a/lib/rubygems/dependency.rb
+++ b/lib/rubygems/dependency.rb
@@ -69,9 +69,6 @@ class Gem::Dependency
end
##
- # What does this dependency require?
-
- ##
# A dependency's hash is the XOR of the hashes of +name+, +type+,
# and +requirement+.
@@ -106,6 +103,9 @@ class Gem::Dependency
end
end
+ ##
+ # What does this dependency require?
+
def requirement
return @requirement if defined?(@requirement) and @requirement
@@ -160,7 +160,16 @@ class Gem::Dependency
__requirement
end
- alias_method :version_requirement, :version_requirements
+ alias version_requirement version_requirements # :nodoc:
+
+ def version_requirements= requirements # :nodoc:
+ warn "#{Gem.location_of_caller.join ':'}:Warning: " \
+ "Gem::Dependency#version_requirements= is deprecated " \
+ "and will be removed on or after August 2010. " \
+ "Use Gem::Dependency.new."
+
+ @requirement = Gem::Requirement.create requirements
+ end
def == other # :nodoc:
Gem::Dependency === other &&
@@ -188,9 +197,12 @@ class Gem::Dependency
end
pattern = name
- pattern = /\A#{Regexp.escape pattern}\Z/ unless Regexp === pattern
- return false unless pattern =~ other.name
+ if Regexp === pattern then
+ return false unless pattern =~ other.name
+ else
+ return false unless pattern == other.name
+ end
reqs = other.requirement.requirements
@@ -202,5 +214,19 @@ class Gem::Dependency
requirement.satisfied_by? version
end
+ def match?(spec_name, spec_version)
+ pattern = name
+
+ if Regexp === pattern
+ return false unless pattern =~ spec_name
+ else
+ return false unless pattern == spec_name
+ end
+
+ return true if requirement.none?
+
+ requirement.satisfied_by? Gem::Version.new(spec_version)
+ end
+
end