Class: Gem::Resolver::DependencyRequest
| Relationships & Source Files | |
| Inherits: | Object | 
| Defined in: | lib/rubygems/resolver/dependency_request.rb | 
Overview
Used Internally. Wraps a ::Gem::Dependency object to also track which spec contained the ::Gem::Dependency.
Class Method Summary
- 
    
      .new(dependency, requester)  ⇒ DependencyRequest 
    
    constructor
    Creates a new DependencyRequestfor #dependency from #requester.
Instance Attribute Summary
- 
    
      #dependency  
    
    readonly
    The wrapped ::Gem::Dependency 
- 
    
      #development?  ⇒ Boolean 
    
    readonly
    Is this dependency a development dependency? 
- 
    
      #explicit?  ⇒ Boolean 
    
    readonly
    Indicate that the request is for a gem explicitly requested by the user. 
- 
    
      #implicit?  ⇒ Boolean 
    
    readonly
    Indicate that the request is for a gem requested as a dependency of another gem. 
- 
    
      #requester  
    
    readonly
    The request for this dependency. 
Instance Method Summary
- 
    
      #match?(spec, allow_prerelease = false)  ⇒ Boolean 
    
    Does this dependency request match spec?
- 
    
      #matches_spec?(spec)  ⇒ Boolean 
    
    Does this dependency request match spec?
- 
    
      #name  
    
    The name of the gem this dependency request is requesting. 
- 
    
      #request_context  
    
    Return a String indicating who caused this request to be added (only valid for implicit requests). 
- 
    
      #requirement  
    
    The version requirement for this dependency request. 
Constructor Details
    .new(dependency, requester)  ⇒ DependencyRequest 
  
Creates a new DependencyRequest for #dependency from #requester. +requester may be nil if the request came from a user.
# File 'lib/rubygems/resolver/dependency_request.rb', line 21
def initialize dependency, requester @dependency = dependency @requester = requester end
Instance Attribute Details
#dependency (readonly)
The wrapped ::Gem::Dependency
# File 'lib/rubygems/resolver/dependency_request.rb', line 10
attr_reader :dependency
    #development?  ⇒ Boolean  (readonly)
  
Is this dependency a development dependency?
# File 'lib/rubygems/resolver/dependency_request.rb', line 40
def development? @dependency.type == :development end
    #explicit?  ⇒ Boolean  (readonly)
  
Indicate that the request is for a gem explicitly requested by the user
# File 'lib/rubygems/resolver/dependency_request.rb', line 73
def explicit? @requester.nil? end
    #implicit?  ⇒ Boolean  (readonly)
  
Indicate that the request is for a gem requested as a dependency of another gem
# File 'lib/rubygems/resolver/dependency_request.rb', line 81
def implicit? !explicit? end
#requester (readonly)
The request for this dependency.
# File 'lib/rubygems/resolver/dependency_request.rb', line 15
attr_reader :requester
Instance Method Details
    #match?(spec, allow_prerelease = false)  ⇒ Boolean 
  
Does this dependency request match spec?
NOTE:  #match? only matches prerelease versions when #dependency is a prerelease dependency.
# File 'lib/rubygems/resolver/dependency_request.rb', line 50
def match? spec, allow_prerelease = false @dependency.match? spec, nil, allow_prerelease end
    #matches_spec?(spec)  ⇒ Boolean 
  
Does this dependency request match spec?
NOTE:  #matches_spec? matches prerelease versions.  See also #match?
# File 'lib/rubygems/resolver/dependency_request.rb', line 59
def matches_spec?(spec) @dependency.matches_spec? spec end
#name
The name of the gem this dependency request is requesting.
# File 'lib/rubygems/resolver/dependency_request.rb', line 66
def name @dependency.name end
#request_context
Return a String indicating who caused this request to be added (only valid for implicit requests)
# File 'lib/rubygems/resolver/dependency_request.rb', line 89
def request_context @requester ? @requester.request : "(unknown)" end
#requirement
The version requirement for this dependency request
# File 'lib/rubygems/resolver/dependency_request.rb', line 107
def requirement @dependency.requirement end