# module RDoc::Parser::ChangeLog::Git

The extension for `Git` commit log

### Public Instance Methods

create_entries(entries) click to toggle source

Returns a list of `ChangeLog` entries as RDoc::Parser::ChangeLog::Git::LogEntry list for the given `entries`.

    # File lib/rdoc/parser/changelog.rb, line 262
    def create_entries entries
      # git log entries have no strictly itemized style like the old
      # style, just assume Markdown.
      entries.map do |commit, entry|
        LogEntry.new(@base_url, commit, *entry)
      end
    end

parse_entries() click to toggle source

Parses the entries in the `Git` commit logs

    # File lib/rdoc/parser/changelog.rb, line 235
    def parse_entries
      entries = []

      @content.scan(/^commit\s+(\h{20})\h*\n((?:.+\n)*)\n((?: {4}.*\n+)*)/) do
        entry_name, header, entry_body = $1, $2, $3.gsub(/^ {4}/, '')
        # header = header.scan(/^ *(\S+?): +(.*)/).to_h
        # date = header["CommitDate"] || header["Date"]
        date = header[/^ *(?:Author)?Date: +(.*)/, 1]
        author = header[/^ *Author: +(.*)/, 1]
        begin
          time = parse_date(header[/^ *CommitDate: +(.*)/, 1] || date)
          @time_cache[entry_name] = time
          author.sub!(/\s*<(.*)>/, '')
          email = $1
          entries << [entry_name, [author, email, date, entry_body]]
        rescue ArgumentError
        end
      end

      entries
    end

parse_info(info) click to toggle source

Parses auxiliary info. Currentry ‘base-url` to expand references is effective.

    # File lib/rdoc/parser/changelog.rb, line 227
    def parse_info(info)
      /^\s*base-url\s*=\s*(.*\S)/ =~ info
      @base_url = $1
    end