summaryrefslogtreecommitdiff
path: root/lib/rubygems/dependency.rb
diff options
context:
space:
mode:
authorryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-01-19 00:08:49 +0000
committerryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-01-19 00:08:49 +0000
commite798ccbacf489a3af2201ae30058ff0ae7f79045 (patch)
tree4147a7834eb88323057fd2120a2ddc96c1eb32ab /lib/rubygems/dependency.rb
parentd26fb035cae8d351dc238376722c980230dc5fbd (diff)
Import rubygems 1.5.0 (release candidate)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/dependency.rb')
-rw-r--r--lib/rubygems/dependency.rb83
1 files changed, 21 insertions, 62 deletions
diff --git a/lib/rubygems/dependency.rb b/lib/rubygems/dependency.rb
index ec5d88b607..d19663e4bd 100644
--- a/lib/rubygems/dependency.rb
+++ b/lib/rubygems/dependency.rb
@@ -1,3 +1,9 @@
+######################################################################
+# This file is imported from the rubygems project.
+# DO NOT make modifications in this repo. They _will_ be reverted!
+# File a patch instead and assign it to Ryan Davis or Eric Hodel.
+######################################################################
+
require "rubygems/requirement"
##
@@ -5,18 +11,6 @@ require "rubygems/requirement"
class Gem::Dependency
- # :stopdoc:
- @warned_version_requirement = false
-
- def self.warned_version_requirement
- @warned_version_requirement
- end
-
- def self.warned_version_requirement= value
- @warned_version_requirement = value
- end
- # :startdoc:
-
##
# Valid dependency types.
#--
@@ -54,7 +48,7 @@ class Gem::Dependency
unless TYPES.include? type
raise ArgumentError, "Valid types are #{TYPES.inspect}, "
- + "not #{@type.inspect}"
+ + "not #{type.inspect}"
end
@name = name
@@ -88,7 +82,7 @@ class Gem::Dependency
@prerelease || requirement.prerelease?
end
- def pretty_print(q) # :nodoc:
+ def pretty_print q # :nodoc:
q.group 1, 'Gem::Dependency.new(', ')' do
q.pp name
q.text ','
@@ -133,12 +127,6 @@ class Gem::Dependency
@requirement = @version_requirements if defined?(@version_requirements)
end
- ##
- # Rails subclasses Gem::Dependency and uses this method, so we'll hack
- # around it.
-
- alias __requirement requirement # :nodoc:
-
def requirements_list
requirement.as_list
end
@@ -147,30 +135,6 @@ class Gem::Dependency
"#{name} (#{requirement}, #{type})"
end
- def version_requirements # :nodoc:
- unless Gem::Dependency.warned_version_requirement then
- warn "#{Gem.location_of_caller.join ':'}:Warning: " \
- "Gem::Dependency#version_requirements is deprecated " \
- "and will be removed on or after August 2010. " \
- "Use #requirement"
-
- Gem::Dependency.warned_version_requirement = true
- end
-
- __requirement
- end
-
- 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 &&
self.name == other.name &&
@@ -182,7 +146,7 @@ class Gem::Dependency
# Dependencies are ordered by name.
def <=> other
- [@name] <=> [other.name]
+ @name <=> other.name
end
##
@@ -193,16 +157,11 @@ class Gem::Dependency
def =~ other
unless Gem::Dependency === other
- other = Gem::Dependency.new other.name, other.version rescue return false
+ return unless other.respond_to?(:name) && other.respond_to?(:version)
+ other = Gem::Dependency.new other.name, other.version
end
- pattern = name
-
- if Regexp === pattern then
- return false unless pattern =~ other.name
- else
- return false unless pattern == other.name
- end
+ return false unless name === other.name
reqs = other.requirement.requirements
@@ -214,18 +173,18 @@ class Gem::Dependency
requirement.satisfied_by? version
end
- def match?(spec_name, spec_version)
- pattern = name
+ def match? name, version
+ return false unless self.name === name
+ return true if requirement.none?
- if Regexp === pattern
- return false unless pattern =~ spec_name
- else
- return false unless pattern == spec_name
- end
+ requirement.satisfied_by? Gem::Version.new(version)
+ end
- return true if requirement.none?
+ def matches_spec? spec
+ return false unless name === spec.name
+ return true if requirement.none?
- requirement.satisfied_by? Gem::Version.new(spec_version)
+ requirement.satisfied_by?(spec.version)
end
end