class Bundler::LockfileParser
def parse_source(line)
def parse_source(line) case line when GIT, GEM, PATH @current_source = nil @opts, @type = {}, line when SPECS case @type when "PATH" @current_source = TYPES[@type].from_lock(@opts) @sources << @current_source when "GIT" @current_source = TYPES[@type].from_lock(@opts) # Strip out duplicate GIT sections if @type == "GIT" && @sources.include?(@current_source) @current_source = @sources.find { |s| s == @current_source } else @sources << @current_source end when "GEM" Array(@opts["remote"]).each do |url| @rubygems_aggregate.add_remote(url) end @current_source = @rubygems_aggregate end when OPTIONS value = $2 value = true if value == "true" value = false if value == "false" key = $1 if @opts[key] @opts[key] = Array(@opts[key]) @opts[key] << value else @opts[key] = value end else parse_spec(line) end end