diff options
author | André Arko <mail@arko.net> | 2015-05-05 00:23:43 -0700 |
---|---|---|
committer | André Arko <mail@arko.net> | 2015-05-05 00:23:43 -0700 |
commit | b6887069aeed5f68577853638c9528b76e7ea899 (patch) | |
tree | de24c7bd6f2a99de638de23104d2d2c655413ab4 | |
parent | 1dfa81760a993f4fb0cd9517a5d4c5ff461e609a (diff) | |
parent | d5b92f372cd179a21946be14c5fa2865d761d59c (diff) | |
download | bundler-b6887069aeed5f68577853638c9528b76e7ea899.tar.gz |
Merge pull request #3619 from bundler/seg-lenient-parser
[LockfileParser] Leniently handle unknown states
-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 |