Class: Gem::Dependency

Inherits:
Object
  • Object
show all
Defined in:
lib/rubygems/version.rb

Overview

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, version_requirements) ⇒ Dependency

Constructs the dependency

name
String

name of the Gem

version_requirements
String Array

version requirement (e.g. [“> 1.2”])



27
28
29
30
31
# File 'lib/rubygems/version.rb', line 27

def initialize(name, version_requirements)
  @name = name
  @version_requirements = Version::Requirement.new(version_requirements)
  @version_requirement = nil   # Avoid warnings.
end

Instance Attribute Details

#nameObject

Returns the value of attribute name.



13
14
15
# File 'lib/rubygems/version.rb', line 13

def name
  @name
end

#version_requirementsObject



33
34
35
36
# File 'lib/rubygems/version.rb', line 33

def version_requirements
  normalize if defined? @version_requirement and @version_requirement
  @version_requirements
end

Instance Method Details

#<=>(other) ⇒ Object



17
18
19
# File 'lib/rubygems/version.rb', line 17

def <=>(other)
  [@name] <=> [other.name]
end

#==(other) ⇒ Object



54
55
56
57
58
# File 'lib/rubygems/version.rb', line 54

def ==(other)
  other.kind_of?(self.class) &&
    self.name == other.name &&
    self.version_requirements == other.version_requirements
end

#hashObject



60
61
62
# File 'lib/rubygems/version.rb', line 60

def hash
  name.hash + version_requirements.hash
end

#normalizeObject



44
45
46
47
48
# File 'lib/rubygems/version.rb', line 44

def normalize
  ver = @version_requirement.instance_eval { @version }
  @version_requirements = Version::Requirement.new([ver])
  @version_requirement = nil
end

#requirement_listObject Also known as: requirements_list



38
39
40
# File 'lib/rubygems/version.rb', line 38

def requirement_list
  version_requirements.as_list
end

#to_sObject



50
51
52
# File 'lib/rubygems/version.rb', line 50

def to_s
  "#{name} (#{version_requirements})"
end