summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2016-06-24 11:19:04 -0500
committerSamuel Giddins <segiddins@segiddins.me>2016-06-27 16:27:22 -0500
commit2f7659ac0ebfc60fc94d2ee55e541a57be26d29c (patch)
tree92e2f2e1e6769aca8549ab47008dd094002cce3a
parent16e535493bcd6e5670b0bff8bcc84b03a01325fa (diff)
downloadbundler-2f7659ac0ebfc60fc94d2ee55e541a57be26d29c.tar.gz
[LockfileParser] Keep duplicate path sources
-rw-r--r--lib/bundler/lockfile_parser.rb18
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/bundler/lockfile_parser.rb b/lib/bundler/lockfile_parser.rb
index db977a8db6..57e6372f02 100644
--- a/lib/bundler/lockfile_parser.rb
+++ b/lib/bundler/lockfile_parser.rb
@@ -129,13 +129,7 @@ module Bundler
when GEM
@opts["remotes"] = @opts.delete("remote")
end
- @current_source = TYPES[@type].from_lock(@opts)
- # Strip out duplicate sections
- if @sources.include?(@current_source)
- @current_source = @sources.find {|s| s == @current_source }
- else
- @sources << @current_source
- end
+ add_source(TYPES[@type].from_lock(@opts))
when OPTIONS
value = $2
value = true if value == "true"
@@ -154,6 +148,16 @@ module Bundler
end
end
+ def add_source(source)
+ # Strip out duplicate sections
+ if @sources.include?(source) && !source.instance_of?(Bundler::Source::Path)
+ @current_source = @sources.find {|s| s == @current_source }
+ else
+ @current_source = source
+ @sources << @current_source
+ end
+ end
+
NAME_VERSION = '(?! )(.*?)(?: \(([^-]*)(?:-(.*))?\))?'.freeze
NAME_VERSION_2 = /^ {2}#{NAME_VERSION}(!)?$/
NAME_VERSION_4 = /^ {4}#{NAME_VERSION}$/