aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bundler/definition.rb
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2024-05-22 20:51:30 +0200
committergit <svn-admin@ruby-lang.org>2024-05-24 15:02:30 +0000
commitc23798c2c47d531d6ed9a8557899b6f582ea6e1b (patch)
tree2f730720725b76ad93ff637bd0bd42797dc0204f /lib/bundler/definition.rb
parentea7e3e7b789885fe01779b21749526e20d184e82 (diff)
downloadruby-c23798c2c47d531d6ed9a8557899b6f582ea6e1b.tar.gz
[rubygems/rubygems] Remove `@remote` instance variable from Definition
It's a sources specific concern, so keep it there. It allows to simplify the code quite a lot. https://github.com/rubygems/rubygems/commit/639f0b72f4
Diffstat (limited to 'lib/bundler/definition.rb')
-rw-r--r--lib/bundler/definition.rb28
1 files changed, 5 insertions, 23 deletions
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb
index bc526fa3e3..5c9437a83c 100644
--- a/lib/bundler/definition.rb
+++ b/lib/bundler/definition.rb
@@ -69,7 +69,6 @@ module Bundler
@sources = sources
@unlock = unlock
@optional_groups = optional_groups
- @remote = false
@prefer_local = false
@specs = nil
@ruby_version = ruby_version
@@ -164,7 +163,6 @@ module Bundler
end
def resolve_only_locally!
- @remote = false
sources.local_only!
resolve
end
@@ -175,26 +173,12 @@ module Bundler
end
def resolve_remotely!
- @remote = true
sources.remote!
resolve
end
- def resolution_mode=(options)
- if options["local"]
- @remote = false
- else
- @remote = true
- @prefer_local = options["prefer-local"]
- end
- end
-
- def setup_sources_for_resolve
- if @remote == false
- sources.cached!
- else
- sources.remote!
- end
+ def prefer_local!
+ @prefer_local = true
end
# For given dependency list returns a SpecSet with Gemspec of all the required
@@ -594,7 +578,7 @@ module Bundler
if missing_specs.any?
missing_specs.each do |s|
locked_gem = @locked_specs[s.name].last
- next if locked_gem.nil? || locked_gem.version != s.version || !@remote
+ next if locked_gem.nil? || locked_gem.version != s.version || sources.local_mode?
raise GemNotFound, "Your bundle is locked to #{locked_gem} from #{locked_gem.source}, but that version can " \
"no longer be found in that source. That means the author of #{locked_gem} has removed it. " \
"You'll need to update your bundle to a version other than #{locked_gem} that hasn't been " \
@@ -613,7 +597,7 @@ module Bundler
break if incomplete_specs.empty?
Bundler.ui.debug("The lockfile does not have all gems needed for the current platform though, Bundler will still re-resolve dependencies")
- setup_sources_for_resolve
+ sources.remote!
resolution_packages.delete(incomplete_specs)
@resolve = start_resolution
specs = resolve.materialize(dependencies)
@@ -974,7 +958,7 @@ module Bundler
else
{ default: Source::RubygemsAggregate.new(sources, source_map) }.merge(source_map.direct_requirements)
end
- source_requirements.merge!(source_map.locked_requirements) unless @remote
+ source_requirements.merge!(source_map.locked_requirements) if nothing_changed?
metadata_dependencies.each do |dep|
source_requirements[dep.name] = sources.metadata_source
end
@@ -1045,8 +1029,6 @@ module Bundler
def dup_for_full_unlock
unlocked_definition = self.class.new(@lockfile, @dependencies, @sources, true, @ruby_version, @optional_groups, @gemfiles)
- unlocked_definition.resolution_mode = { "local" => !@remote }
- unlocked_definition.setup_sources_for_resolve
unlocked_definition.gem_version_promoter.tap do |gvp|
gvp.level = gem_version_promoter.level
gvp.strict = gem_version_promoter.strict