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
DependencyRequest
for #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