summaryrefslogtreecommitdiff
path: root/lib/bundler/spec_set.rb
diff options
context:
space:
mode:
authorCarl Lerche <carllerche@mac.com>2010-07-06 17:27:50 -0700
committerCarl Lerche <carllerche@mac.com>2010-07-06 17:29:15 -0700
commitc0e5a90023651d2b97d42e0c64c13f5aff27bc1e (patch)
treead8fbe021cc6ab53565504aba8a3ce0890dc1641 /lib/bundler/spec_set.rb
parentd0db5869bb3489eda49fbbe901c0455e43669fcf (diff)
downloadbundler-c0e5a90023651d2b97d42e0c64c13f5aff27bc1e.tar.gz
Don't add duplicate gemspecs to the lock file
Diffstat (limited to 'lib/bundler/spec_set.rb')
-rw-r--r--lib/bundler/spec_set.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/bundler/spec_set.rb b/lib/bundler/spec_set.rb
index 36faf1a6d5..263f56fb4b 100644
--- a/lib/bundler/spec_set.rb
+++ b/lib/bundler/spec_set.rb
@@ -92,7 +92,12 @@ module Bundler
end
def merge(set)
- SpecSet.new(sorted + set.to_a)
+ arr = sorted.dup
+ set.each do |s|
+ next if arr.any? { |s2| s2.name == s.name && s2.version == s.version && s2.platform == s.platform }
+ arr << s
+ end
+ SpecSet.new(arr)
end
private
@@ -126,4 +131,4 @@ module Bundler
end
end
end
-end \ No newline at end of file
+end