diff options
Diffstat (limited to 'lib/rubygems/resolver/dependency_request.rb')
-rw-r--r-- | lib/rubygems/resolver/dependency_request.rb | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/lib/rubygems/resolver/dependency_request.rb b/lib/rubygems/resolver/dependency_request.rb index e63b443c62..1d51db4945 100644 --- a/lib/rubygems/resolver/dependency_request.rb +++ b/lib/rubygems/resolver/dependency_request.rb @@ -4,16 +4,26 @@ class Gem::Resolver::DependencyRequest + ## + # The wrapped Gem::Dependency + attr_reader :dependency + ## + # The request for this dependency. + attr_reader :requester - def initialize(dep, act) - @dependency = dep - @requester = act + ## + # Creates a new DependencyRequest for +dependency+ from +requester+. + # +requester may be nil if the request came from a user. + + def initialize dependency, requester + @dependency = dependency + @requester = requester end - def ==(other) + def == other # :nodoc: case other when Gem::Dependency @dependency == other @@ -24,26 +34,39 @@ class Gem::Resolver::DependencyRequest end end + ## + # Does this dependency request match +spec+ + def matches_spec?(spec) @dependency.matches_spec? spec end + ## + # The name of the gem this dependency request is requesting. + def name @dependency.name end + ## # Indicate that the request is for a gem explicitly requested by the user + def explicit? @requester.nil? end - # Indicate that the requset is for a gem requested as a dependency of another gem + ## + # Indicate that the request is for a gem requested as a dependency of + # another gem + def implicit? !explicit? end + ## # Return a String indicating who caused this request to be added (only # valid for implicit requests) + def request_context @requester ? @requester.request : "(unknown)" end @@ -59,6 +82,9 @@ class Gem::Resolver::DependencyRequest end end + ## + # The version requirement for this dependency request + def requirement @dependency.requirement end |