~ubuntu-branches/ubuntu/trusty/ruby1.9/trusty

« back to all changes in this revision

Viewing changes to lib/rubygems/dependency.rb

  • Committer: Bazaar Package Importer
  • Author(s): Stephan Hermann
  • Date: 2008-01-24 11:42:29 UTC
  • mfrom: (1.1.9 upstream)
  • Revision ID: james.westby@ubuntu.com-20080124114229-jw2f87rdxlq6gp11
Tags: 1.9.0.0-2ubuntu1
* Merge from debian unstable, remaining changes:
  - Robustify check for target_os, fixing build failure on lpia.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#--
 
2
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
 
3
# All rights reserved.
 
4
# See LICENSE.txt for permissions.
 
5
#++
 
6
 
 
7
require 'rubygems'
 
8
 
 
9
##
 
10
# The Dependency class holds a Gem name and a Gem::Requirement
 
11
class Gem::Dependency
 
12
 
 
13
  attr_accessor :name
 
14
 
 
15
  attr_writer :version_requirements
 
16
 
 
17
  def <=>(other)
 
18
    [@name] <=> [other.name]
 
19
  end
 
20
 
 
21
  ##
 
22
  # Constructs the dependency
 
23
  #
 
24
  # name:: [String] name of the Gem
 
25
  # version_requirements:: [String Array] version requirement (e.g. ["> 1.2"])
 
26
  #
 
27
  def initialize(name, version_requirements)
 
28
    @name = name
 
29
    @version_requirements = Gem::Requirement.create version_requirements
 
30
    @version_requirement = nil   # Avoid warnings.
 
31
  end
 
32
 
 
33
  def version_requirements
 
34
    normalize if defined? @version_requirement and @version_requirement
 
35
    @version_requirements
 
36
  end
 
37
 
 
38
  def requirement_list
 
39
    version_requirements.as_list
 
40
  end
 
41
 
 
42
  alias requirements_list requirement_list
 
43
 
 
44
  def normalize
 
45
    ver = @version_requirement.instance_eval { @version }
 
46
    @version_requirements = Gem::Requirement.new([ver])
 
47
    @version_requirement = nil
 
48
  end
 
49
 
 
50
  def to_s # :nodoc:
 
51
    "#{name} (#{version_requirements})"
 
52
  end
 
53
 
 
54
  def ==(other) # :nodoc:
 
55
    self.class === other &&
 
56
      self.name == other.name &&
 
57
      self.version_requirements == other.version_requirements
 
58
  end
 
59
 
 
60
  def hash
 
61
    name.hash + version_requirements.hash
 
62
  end
 
63
 
 
64
end
 
65