aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bundler/source_list.rb
diff options
context:
space:
mode:
authorAndre Arko <andre@arko.net>2014-11-10 20:24:58 -0800
committerAndre Arko <andre@arko.net>2014-11-10 20:24:58 -0800
commit6ba537fc069a75d473080ba3f724ac2aa06346e4 (patch)
tree5766e11fef32b62974fe8c58d8cded2433122967 /lib/bundler/source_list.rb
parent00a795c763d7a67d40ca868e4ad2a7386d712d3e (diff)
parent28b3808c7d9c8331f497fc865569c1ab716f58f1 (diff)
downloadbundler-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.rb24
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