in lib/between_meals/repo/git.rb [146:223]
def parse_status(changes)
changes.lines.map do |line|
parts = line.chomp.split("\t")
case parts[0]
when 'A'
{
:status => :modified,
:path => parts[1],
}
when /^C(?:\d*)/
{
:status => :modified,
:path => parts[2],
}
when 'D'
{
:status => :deleted,
:path => parts[1],
}
when /^M(?:\d*)/
{
:status => :modified,
:path => parts[1],
}
when /^R(?:\d*)/
[
{
:status => :deleted,
:path => parts[1],
},
{
:status => :modified,
:path => parts[2],
},
]
when 'T'
[
{
:status => :deleted,
:path => parts[1],
},
{
:status => :modified,
:path => parts[1],
},
]
else
fail 'Failed to parse repo diff line.'
end
end.flatten.map do |x|
{
:status => x[:status],
:path => x[:path].sub("#{@repo_path}/", ''),
}
end
end