Class Gem::Dependency
In: lib/rubygems/dependency.rb
Parent: Object

The Dependency class holds a Gem name and a Gem::Requirement

Methods

Constants

TYPES = [ :development, :runtime, ]   Valid dependency types.

Attributes

name  [RW]  Dependency name or regular expression.
type  [R]  Dependency type.
version_requirements  [W]  Dependent versions.

Public Class methods

Constructs a dependency with name and requirements.

[Source]

    # File lib/rubygems/dependency.rb, line 50
50:   def initialize(name, version_requirements, type=:runtime)
51:     @name = name
52: 
53:     unless TYPES.include? type
54:       raise ArgumentError, "Valid types are #{TYPES.inspect}, not #{@type.inspect}"
55:     end
56: 
57:     @type = type
58: 
59:     @version_requirements = Gem::Requirement.create version_requirements
60:     @version_requirement = nil   # Avoid warnings.
61:   end

Public Instance methods

Orders dependencies by name only.

[Source]

    # File lib/rubygems/dependency.rb, line 43
43:   def <=>(other)
44:     [@name] <=> [other.name]
45:   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.

[Source]

     # File lib/rubygems/dependency.rb, line 96
 96:   def =~(other)
 97:     return false unless self.class === other
 98: 
 99:     pattern = @name
100:     pattern = /\A#{@name}\Z/ unless Regexp === pattern
101: 
102:     return false unless pattern =~ other.name
103: 
104:     reqs = other.version_requirements.requirements
105: 
106:     return false unless reqs.length == 1
107:     return false unless reqs.first.first == '='
108: 
109:     version = reqs.first.last
110: 
111:     version_requirements.satisfied_by? version
112:   end

[Source]

    # File lib/rubygems/dependency.rb, line 74
74:   def normalize
75:     ver = @version_requirement.instance_eval { @version }
76:     @version_requirements = Gem::Requirement.new([ver])
77:     @version_requirement = nil
78:   end

[Source]

    # File lib/rubygems/dependency.rb, line 68
68:   def requirement_list
69:     version_requirements.as_list
70:   end
requirements_list()

Alias for requirement_list

[Source]

    # File lib/rubygems/dependency.rb, line 63
63:   def version_requirements
64:     normalize if defined? @version_requirement and @version_requirement
65:     @version_requirements
66:   end

[Validate]