method

parse_GEM

parse_GEM()
public

No documentation available.

# File lib/rubygems/request_set/lockfile.rb, line 279
  def parse_GEM # :nodoc:
    get :entry, 'remote'
    _, data, = get :text

    source = Gem::Source.new data

    skip :newline

    get :entry, 'specs'

    skip :newline

    set = Gem::Resolver::LockSet.new source
    last_spec = nil

    while not @tokens.empty? and :text == peek.first do
      _, name, column, = get :text

      case peek[0]
      when :newline then
        last_spec.add_dependency Gem::Dependency.new name if column == 6
      when :l_paren then
        get :l_paren

        type, data, = get [:text, :requirement]

        if type == :text and column == 4 then
          version, platform = data.split '-', 2

          platform =
            platform ? Gem::Platform.new(platform) : Gem::Platform::RUBY

          last_spec = set.add name, version, platform
        else
          dependency = parse_dependency name, data

          last_spec.add_dependency dependency
        end

        get :r_paren
      else
        raise "BUG: unknown token #{peek}"
      end

      skip :newline
    end

    @set.sets << set
  end