Class: Bundler::Resolver::Base
- Inherits:
-
Object
- Object
- Bundler::Resolver::Base
- Defined in:
- lib/bundler/resolver/base.rb
Instance Attribute Summary collapse
-
#locked_specs ⇒ Object
readonly
Returns the value of attribute locked_specs.
-
#packages ⇒ Object
readonly
Returns the value of attribute packages.
-
#requirements ⇒ Object
readonly
Returns the value of attribute requirements.
-
#source_requirements ⇒ Object
readonly
Returns the value of attribute source_requirements.
Instance Method Summary collapse
- #[](name) ⇒ Object
- #base_requirements ⇒ Object
- #delete(specs) ⇒ Object
-
#explicitly_unlocked?(name) ⇒ Boolean
Gems the user named on a
bundle update GEM/bundle lock --update GEMcommand line. - #get_package(name) ⇒ Object
- #include_prereleases(names) ⇒ Object
- #include_remote_specs(names) ⇒ Object
-
#initialize(source_requirements, dependencies, base, platforms, options) ⇒ Base
constructor
A new instance of Base.
- #unlock_names(names) ⇒ Object
Constructor Details
#initialize(source_requirements, dependencies, base, platforms, options) ⇒ Base
Returns a new instance of Base.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/bundler/resolver/base.rb', line 10 def initialize(source_requirements, dependencies, base, platforms, ) @explicit_unlocks = .delete(:explicit_unlocks) || [] @source_requirements = source_requirements @locked_specs = [:locked_specs] @base = base @packages = Hash.new do |hash, name| hash[name] = Package.new(name, platforms, **) end @requirements = dependencies.filter_map do |dep| dep_platforms = dep.gem_platforms(platforms) # Dependencies scoped to external platforms are ignored next if dep_platforms.empty? name = dep.name @packages[name] = Package.new(name, dep_platforms, **.merge(dependency: dep)) dep end end |
Instance Attribute Details
#locked_specs ⇒ Object (readonly)
Returns the value of attribute locked_specs.
8 9 10 |
# File 'lib/bundler/resolver/base.rb', line 8 def locked_specs @locked_specs end |
#packages ⇒ Object (readonly)
Returns the value of attribute packages.
8 9 10 |
# File 'lib/bundler/resolver/base.rb', line 8 def packages @packages end |
#requirements ⇒ Object (readonly)
Returns the value of attribute requirements.
8 9 10 |
# File 'lib/bundler/resolver/base.rb', line 8 def requirements @requirements end |
#source_requirements ⇒ Object (readonly)
Returns the value of attribute source_requirements.
8 9 10 |
# File 'lib/bundler/resolver/base.rb', line 8 def source_requirements @source_requirements end |
Instance Method Details
#[](name) ⇒ Object
35 36 37 |
# File 'lib/bundler/resolver/base.rb', line 35 def [](name) @base[name] end |
#base_requirements ⇒ Object
55 56 57 |
# File 'lib/bundler/resolver/base.rb', line 55 def base_requirements @base_requirements ||= build_base_requirements end |
#delete(specs) ⇒ Object
39 40 41 |
# File 'lib/bundler/resolver/base.rb', line 39 def delete(specs) @base.delete(specs) end |
#explicitly_unlocked?(name) ⇒ Boolean
Gems the user named on a bundle update GEM / bundle lock --update GEM
command line. These are the only ones meant to move off their locked
version, so cooldown keeps applying to them while every other locked gem
stays exempt.
51 52 53 |
# File 'lib/bundler/resolver/base.rb', line 51 def explicitly_unlocked?(name) @explicit_unlocks.include?(name) end |
#get_package(name) ⇒ Object
43 44 45 |
# File 'lib/bundler/resolver/base.rb', line 43 def get_package(name) @packages[name] end |
#include_prereleases(names) ⇒ Object
75 76 77 78 79 |
# File 'lib/bundler/resolver/base.rb', line 75 def include_prereleases(names) names.each do |name| get_package(name).consider_prereleases! end end |
#include_remote_specs(names) ⇒ Object
81 82 83 84 85 |
# File 'lib/bundler/resolver/base.rb', line 81 def include_remote_specs(names) names.each do |name| get_package(name).consider_remote_versions! end end |
#unlock_names(names) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/bundler/resolver/base.rb', line 59 def unlock_names(names) indirect_pins = indirect_pins(names) if indirect_pins.any? loosen_names(indirect_pins) else pins = pins(names) if pins.any? loosen_names(pins) else unrestrict_names(names) end end end |