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:" @current_source = TYPES[@type].from_lock(@opts) # Strip out duplicate GIT sections if @sources.include?(@current_source) && @current_source.is_a?(Bundler::Source::Git) @current_source = @sources.find { |s| s == @current_source } end @sources << @current_source when /^ ([a-z]+): (.*)$/i 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