in lib/grit/commit_stats.rb [51:84]
def self.list_from_string(repo, text)
lines = text.split("\n")
commits = []
while !lines.empty?
id = lines.shift.split.last
lines.shift
lines.shift
lines.shift
message_lines = []
message_lines << lines.shift[4..-1] while lines.first =~ /^ {4}/ || lines.first == ''
lines.shift while lines.first && lines.first.empty?
files = []
while lines.first =~ /^([-\d]+)\s+([-\d]+)\s+(.+)/
(additions, deletions, filename) = lines.shift.split(nil, 3)
additions = additions.to_i
deletions = deletions.to_i
total = additions + deletions
files << [filename, additions, deletions, total]
end
lines.shift while lines.first && lines.first.empty?
commits << [id, CommitStats.new(repo, id, files)]
end
commits
end