diff options
author | Andre Arko <andre@arko.net> | 2014-11-10 20:24:58 -0800 |
---|---|---|
committer | Andre Arko <andre@arko.net> | 2014-11-10 20:24:58 -0800 |
commit | 6ba537fc069a75d473080ba3f724ac2aa06346e4 (patch) | |
tree | 5766e11fef32b62974fe8c58d8cded2433122967 /lib/bundler/source_list.rb | |
parent | 00a795c763d7a67d40ca868e4ad2a7386d712d3e (diff) | |
parent | 28b3808c7d9c8331f497fc865569c1ab716f58f1 (diff) | |
download | bundler-6ba537fc069a75d473080ba3f724ac2aa06346e4.tar.gz |
Merge tag 'v1.7.5'
Version 1.7.5
Conflicts:
.travis.yml
CHANGELOG.md
lib/bundler/fetcher.rb
lib/bundler/source_list.rb
man/gemfile.5.ronn
spec/bundler/source_list_spec.rb
Diffstat (limited to 'lib/bundler/source_list.rb')
-rw-r--r-- | lib/bundler/source_list.rb | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/lib/bundler/source_list.rb b/lib/bundler/source_list.rb index e7529f27..1b7a20c2 100644 --- a/lib/bundler/source_list.rb +++ b/lib/bundler/source_list.rb @@ -10,7 +10,7 @@ module Bundler @git_sources = [] @svn_sources = [] @rubygems_aggregate = Source::Rubygems.new - @rubygems_sources = [@rubygems_aggregate] + @rubygems_sources = [] end def add_path_source(options = {}) @@ -34,6 +34,14 @@ module Bundler @rubygems_aggregate end + def rubygems_sources + @rubygems_sources + [@rubygems_aggregate] + end + + def rubygems_remotes + rubygems_sources.map(&:remotes).flatten.uniq + end + def all_sources path_sources + git_sources + svn_sources + rubygems_sources end @@ -48,11 +56,21 @@ module Bundler end def replace_sources!(replacement_sources) - [path_sources, git_sources, svn_sources, rubygems_sources].each do |source_list| + return true if replacement_sources.empty? + + [path_sources, git_sources, svn_sources].each do |source_list| source_list.map! do |source| replacement_sources.find { |s| s == source } || source end end + + replacement_rubygems = + replacement_sources.detect { |s| s.is_a?(Source::Rubygems) } + @rubygems_aggregate = replacement_rubygems + + # Return true if there were changes + all_sources.to_set != replacement_sources.to_set || + rubygems_remotes.to_set != replacement_rubygems.remotes.to_set end def cached! @@ -81,7 +99,7 @@ module Bundler end def combine_rubygems_sources - Source::Rubygems.new("remotes" => rubygems_sources.map(&:remotes).flatten.uniq.reverse) + Source::Rubygems.new("remotes" => rubygems_remotes) end end end |