diff options
author | Samuel E. Giddins <segiddins@segiddins.me> | 2015-05-04 21:17:59 -0700 |
---|---|---|
committer | Samuel E. Giddins <segiddins@segiddins.me> | 2015-05-04 21:17:59 -0700 |
commit | d5b92f372cd179a21946be14c5fa2865d761d59c (patch) | |
tree | 445b9a112364933aea01754d296da4e474b14b79 | |
parent | 84c32d00d59bb90a95eef72422f52253835aa1a5 (diff) | |
download | bundler-seg-lenient-parser.tar.gz |
[LockfileParser] Leniently handle unknown statesseg-lenient-parser
-rw-r--r-- | lib/bundler/lockfile_parser.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/bundler/lockfile_parser.rb b/lib/bundler/lockfile_parser.rb index 7030508988..9586763c66 100644 --- a/lib/bundler/lockfile_parser.rb +++ b/lib/bundler/lockfile_parser.rb @@ -21,12 +21,13 @@ module Bundler PATH = "PATH" SPECS = " specs:" OPTIONS = /^ ([a-z]+): (.*)$/i + SOURCE = [GIT, GEM, PATH] def initialize(lockfile) @platforms = [] @sources = [] @dependencies = [] - @state = :source + @state = nil @specs = {} @rubygems_aggregate = Source::Rubygems.new @@ -37,11 +38,16 @@ module Bundler end lockfile.split(/(?:\r?\n)+/).each do |line| - if line == DEPENDENCIES + if SOURCE.include?(line) + @state = :source + parse_source(line) + elsif line == DEPENDENCIES @state = :dependency elsif line == PLATFORMS @state = :platform - else + elsif line =~ /^[^\s]/ + @state = nil + elsif @state send("parse_#{@state}", line) end end |