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.
- #type
- #==(other) Internal use only
- #pretty_print(q) Internal use only
- #to_s Internal use only
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 22
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 11
attr_reader :dependency
#development? ⇒ Boolean
(readonly)
Is this dependency a development dependency?
# File 'lib/rubygems/resolver/dependency_request.rb', line 41
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 78
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 86
def implicit? !explicit? end
#requester (readonly)
The request for this dependency.
# File 'lib/rubygems/resolver/dependency_request.rb', line 16
attr_reader :requester
Instance Method Details
#==(other)
# File 'lib/rubygems/resolver/dependency_request.rb', line 27
def == other # :nodoc: case other when Gem::Dependency @dependency == other when Gem::Resolver::DependencyRequest @dependency == other.dependency && @requester == other.requester else false end end
#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 51
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 60
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 67
def name @dependency.name end
#pretty_print(q)
# File 'lib/rubygems/resolver/dependency_request.rb', line 98
def pretty_print q # :nodoc: q.group 2, '[Dependency request ', ']' do q.breakable q.text @dependency.to_s q.breakable q.text ' requested by ' q.pp @requester end 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 94
def request_context @requester ? @requester.request : "(unknown)" end
#requirement
The version requirement for this dependency request
# File 'lib/rubygems/resolver/dependency_request.rb', line 112
def requirement @dependency.requirement end
#to_s
# File 'lib/rubygems/resolver/dependency_request.rb', line 116
def to_s # :nodoc: @dependency.to_s end
#type
[ GitHub ]# File 'lib/rubygems/resolver/dependency_request.rb', line 71
def type @dependency.type end