method

parse_GIT

parse_GIT()
public

No documentation available.

# File lib/rubygems/request_set/lockfile/parser.rb, line 173
  def parse_GIT # :nodoc:
    get :entry, 'remote'
    repository = get(:text).value

    skip :newline

    get :entry, 'revision'
    revision = get(:text).value

    skip :newline

    type = peek.type
    value = peek.value
    if type == :entry and ]branch ref tag].include? value then
      get
      get :text

      skip :newline
    end

    get :entry, 'specs'

    skip :newline

    set = Gem::Resolver::GitSet.new
    set.root_dir = @set.install_dir

    last_spec = nil

    while not @tokens.empty? and :text == peek.type do
      token = get :text
      name = token.value
      column = token.column

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

        token = get [:text, :requirement]
        type = token.type
        data = token.value

        if type == :text and column == 4 then
          last_spec = set.add_git_spec name, data, repository, revision, true
        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