summaryrefslogtreecommitdiff
path: root/trunk/lib/rubygems/dependency.rb
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/lib/rubygems/dependency.rb')
-rw-r--r--trunk/lib/rubygems/dependency.rb119
1 files changed, 0 insertions, 119 deletions
diff --git a/trunk/lib/rubygems/dependency.rb b/trunk/lib/rubygems/dependency.rb
deleted file mode 100644
index 7b9904df55..0000000000
--- a/trunk/lib/rubygems/dependency.rb
+++ /dev/null
@@ -1,119 +0,0 @@
-#--
-# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
-# All rights reserved.
-# See LICENSE.txt for permissions.
-#++
-
-require 'rubygems'
-
-##
-# The Dependency class holds a Gem name and a Gem::Requirement
-
-class Gem::Dependency
-
- ##
- # Valid dependency types.
- #--
- # When this list is updated, be sure to change
- # Gem::Specification::CURRENT_SPECIFICATION_VERSION as well.
-
- TYPES = [
- :development,
- :runtime,
- ]
-
- ##
- # Dependency name or regular expression.
-
- attr_accessor :name
-
- ##
- # Dependency type.
-
- attr_reader :type
-
- ##
- # Dependent versions.
-
- attr_writer :version_requirements
-
- ##
- # Orders dependencies by name only.
-
- def <=>(other)
- [@name] <=> [other.name]
- end
-
- ##
- # Constructs a dependency with +name+ and +requirements+.
-
- def initialize(name, version_requirements, type=:runtime)
- @name = name
-
- unless TYPES.include? type
- raise ArgumentError, "Valid types are #{TYPES.inspect}, not #{@type.inspect}"
- end
-
- @type = type
-
- @version_requirements = Gem::Requirement.create version_requirements
- @version_requirement = nil # Avoid warnings.
- end
-
- def version_requirements
- normalize if defined? @version_requirement and @version_requirement
- @version_requirements
- end
-
- def requirement_list
- version_requirements.as_list
- end
-
- alias requirements_list requirement_list
-
- def normalize
- ver = @version_requirement.instance_eval { @version }
- @version_requirements = Gem::Requirement.new([ver])
- @version_requirement = nil
- end
-
- def to_s # :nodoc:
- "#{name} (#{version_requirements}, #{@type || :runtime})"
- end
-
- def ==(other) # :nodoc:
- self.class === other &&
- self.name == other.name &&
- self.type == other.type &&
- self.version_requirements == other.version_requirements
- 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
-
- reqs = other.version_requirements.requirements
-
- return false unless reqs.length == 1
- return false unless reqs.first.first == '='
-
- version = reqs.first.last
-
- version_requirements.satisfied_by? version
- end
-
- def hash # :nodoc:
- name.hash + type.hash + version_requirements.hash
- end
-
-end
-