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:.
Attributes inherited from Set
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(sources) ⇒ LockSet
constructor
Creates a new LockSet from the given
sources. -
#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
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.
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/rubygems/resolver/lock_set.rb', line 28 def add(name, version, platform) # :nodoc: version = Gem::Version.new version specs = [ Gem::Resolver::LockSpecification.new(self, name, version, @sources, platform), ] @specs.concat specs specs end |
#find_all(req) ⇒ Object
Returns an Array of IndexSpecification objects matching the DependencyRequest req.
43 44 45 46 47 |
# File 'lib/rubygems/resolver/lock_set.rb', line 43 def find_all(req) @specs.select do |spec| req.match? spec end end |
#load_spec(name, version, platform, source) ⇒ Object
Loads a Gem::Specification with the given name, version and platform. source is ignored.
53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/rubygems/resolver/lock_set.rb', line 53 def load_spec(name, version, platform, source) # :nodoc: dep = Gem::Dependency.new name, version found = @specs.find do |spec| dep.matches_spec?(spec) && 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:
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/rubygems/resolver/lock_set.rb', line 65 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 |