summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Arko <andre@arko.net>2015-03-30 13:09:03 +0100
committerAndre Arko <andre@arko.net>2015-03-30 13:09:03 +0100
commit4e838cbdf97ea7782d9fccd7b16105c525dd9ed9 (patch)
treec33c089a380e563eb7bfee825a8c0b850e462cf2
parentd85fdb4d0bbbd93ac0ee8b6fcc79260d6075ba1f (diff)
downloadbundler-4e838cbdf97ea7782d9fccd7b16105c525dd9ed9.tar.gz
test remote inclusion only on Rubygems sources
-rw-r--r--lib/bundler/definition.rb7
-rw-r--r--lib/bundler/source.rb5
-rw-r--r--lib/bundler/source/rubygems.rb16
3 files changed, 17 insertions, 11 deletions
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb
index d80b393f3d..5198a8e3a4 100644
--- a/lib/bundler/definition.rb
+++ b/lib/bundler/definition.rb
@@ -559,15 +559,10 @@ module Bundler
end
def in_locked_deps?(dep, locked_dep)
- return nil if locked_dep.nil?
- return true if locked_dep.source == dep.source
-
# Because the lockfile can't link a dep to a specific remote, we need to
# treat sources as equivalent anytime the locked dep has all the remotes
# that the Gemfile dep does.
- dep.source.remotes.all? do |remote|
- locked_dep.source.remotes.include?(remote)
- end
+ locked_dep && locked_dep.source && dep.source && locked_dep.source.include?(dep.source)
end
def satisfies_locked_spec?(dep)
diff --git a/lib/bundler/source.rb b/lib/bundler/source.rb
index 04643b4977..1f8cf2cbe7 100644
--- a/lib/bundler/source.rb
+++ b/lib/bundler/source.rb
@@ -33,5 +33,10 @@ module Bundler
def can_lock?(spec)
spec.source == self
end
+
+ def include?(other)
+ other == self
+ end
+
end
end
diff --git a/lib/bundler/source/rubygems.rb b/lib/bundler/source/rubygems.rb
index 33d2ec2c48..99cea1fa05 100644
--- a/lib/bundler/source/rubygems.rb
+++ b/lib/bundler/source/rubygems.rb
@@ -34,11 +34,15 @@ module Bundler
end
def eql?(o)
- o.is_a?(Rubygems) && remotes_equal?(o.remotes)
+ o.is_a?(Rubygems) && o.credless_remotes == credless_remotes
end
alias == eql?
+ def include?(o)
+ o.is_a?(Rubygems) && (o.credless_remotes - credless_remotes).empty?
+ end
+
def can_lock?(spec)
spec.source.is_a?(Rubygems)
end
@@ -186,6 +190,12 @@ module Bundler
end
end
+ protected
+
+ def credless_remotes
+ remotes.map(&method(:suppress_configured_credentials))
+ end
+
private
def source_uris_for_spec(spec)
@@ -356,10 +366,6 @@ module Bundler
spec.loaded_from && spec.loaded_from.include?("specifications/default/")
end
- def remotes_equal?(other_remotes)
- remotes.map(&method(:suppress_configured_credentials)) == other_remotes.map(&method(:suppress_configured_credentials))
- end
-
end
end
end