Skip to content

Commit 765da72

Browse files
deivid-rodriguezhsbt
authored andcommitted
[rubygems/rubygems] Refactor replacing sources
ruby/rubygems@4c05ac8306
1 parent 192e57d commit 765da72

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

lib/bundler/source_list.rb

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -173,12 +173,12 @@ def dup_with_replaced_sources(replacement_sources)
173173

174174
def map_sources(replacement_sources)
175175
rubygems = @rubygems_sources.map do |source|
176-
replace_rubygems_source(replacement_sources, source) || source
176+
replace_rubygems_source(replacement_sources, source)
177177
end
178178

179179
git, plugin = [@git_sources, @plugin_sources].map do |sources|
180180
sources.map do |source|
181-
replacement_sources.find {|s| s == source } || source
181+
replace_source(replacement_sources, source)
182182
end
183183
end
184184

@@ -190,19 +190,24 @@ def map_sources(replacement_sources)
190190
end
191191

192192
def global_replacement_source(replacement_sources)
193-
replacement_source = replace_rubygems_source(replacement_sources, global_rubygems_source)
194-
return global_rubygems_source unless replacement_source
195-
196-
replacement_source.local!
197-
replacement_source
193+
replace_rubygems_source(replacement_sources, global_rubygems_source, &:local!)
198194
end
199195

200196
def replace_rubygems_source(replacement_sources, gemfile_source)
197+
replace_source(replacement_sources, gemfile_source) do |replacement_source|
198+
# locked sources never include credentials so always prefer remotes from the gemfile
199+
replacement_source.remotes = gemfile_source.remotes
200+
201+
yield replacement_source if block_given?
202+
end
203+
end
204+
205+
def replace_source(replacement_sources, gemfile_source)
201206
replacement_source = replacement_sources.find {|s| s == gemfile_source }
202-
return unless replacement_source
207+
return gemfile_source unless replacement_source
208+
209+
yield replacement_source if block_given?
203210

204-
# locked sources never include credentials so always prefer remotes from the gemfile
205-
replacement_source.remotes = gemfile_source.remotes
206211
replacement_source
207212
end
208213

0 commit comments

Comments
 (0)