Class: Gem::Resolver::LockSet
- Defined in:
- lib/rubygems/resolver/lock_set.rb
Overview
A set of gems from a gem dependencies lockfile.
Instance Attribute Summary collapse
-
#specs ⇒ Object
readonly
:nodoc:.
Instance Method Summary collapse
-
#add(name, version, platform) ⇒ Object
Creates a new IndexSpecification in this set using the given
name,versionandplatform. -
#find_all(req) ⇒ Object
Returns an Array of IndexSpecification objects matching the DependencyRequest
req. -
#initialize(source) ⇒ LockSet
constructor
Creates a new LockSet from the given
source. -
#load_spec(name, version, platform, source) ⇒ Object
Loads a Gem::Specification with the given
name,versionandplatform. -
#pretty_print(q) ⇒ Object
:nodoc:.
Methods inherited from Set
Constructor Details
#initialize(source) ⇒ LockSet
Creates a new LockSet from the given source
11 12 13 14 |
# File 'lib/rubygems/resolver/lock_set.rb', line 11 def initialize source @source = Gem::Source::Lock.new source @specs = [] end |
Instance Attribute Details
#specs ⇒ Object (readonly)
:nodoc:
6 7 8 |
# File 'lib/rubygems/resolver/lock_set.rb', line 6 def specs @specs end |
Instance Method Details
#add(name, version, platform) ⇒ Object
Creates a new IndexSpecification in this set using the given name, version and platform.
The specification’s set will be the current set, and the source will be the current set’s source.
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/rubygems/resolver/lock_set.rb', line 23 def add name, version, platform # :nodoc: version = Gem::Version.new version spec = Gem::Resolver::LockSpecification.new self, name, version, @source, platform @specs << spec spec end |
#find_all(req) ⇒ Object
Returns an Array of IndexSpecification objects matching the DependencyRequest req.
39 40 41 42 43 |
# File 'lib/rubygems/resolver/lock_set.rb', line 39 def find_all req @specs.select do |spec| req.matches_spec? spec end end |
#load_spec(name, version, platform, source) ⇒ Object
Loads a Gem::Specification with the given name, version and platform. source is ignored.
49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/rubygems/resolver/lock_set.rb', line 49 def load_spec name, version, platform, source # :nodoc: dep = Gem::Dependency.new name, version found = @specs.find do |spec| dep.matches_spec? spec and spec.platform == platform end tuple = Gem::NameTuple.new found.name, found.version, found.platform found.source.fetch_spec tuple end |
#pretty_print(q) ⇒ Object
:nodoc:
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/rubygems/resolver/lock_set.rb', line 61 def pretty_print q # :nodoc: q.group 2, '[LockSet', ']' do q.breakable q.text 'source:' q.breakable q.pp @source q.breakable q.text 'specs:' q.breakable q.pp @specs.map { |spec| spec.full_name } end end |