require 'date' require "changeset_entry" class MercurialLogParser def parse_log(log_message) revisions = [] entries = split_log(log_message) entries.each do |log_entry| rev_number = parse_for_rev_number(log_entry) name = parse_for_name(log_entry) date = parse_for_date(log_entry) message = parse_for_message(log_entry) change_set_entries = [] files = parse_for_files(log_entry) files.each do |file_name| change_set_entries << ChangesetEntry.new("", file_name) end revisions << Revision.new(rev_number, name, date, message, change_set_entries) end revisions end def parse_for_name log_message log_message =~ /user:\s+(.*)\