25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/ledger-rest/ledger/budget.rb', line 25
def json(query = nil, params = {})
params = { '--format' => FORMAT }.merge(params)
result = Ledger.exec("budget #{query}", params)
budget = {}
accounts, total = result.split("---\n---\n")
budget['accounts'] = accounts.split("---\n").map do |str|
val = str.split("\n")
{
'total' => val[0].empty? ? '0' : val[0],
'budget' => val[1].empty? ? '0' : val[1],
'difference' => val[2].empty? ? '0' : val[2],
'percentage' => val[3].empty? ? '0' : val[3],
'account' => val[4].empty? ? '0' : val[4]
}
end
if total
val = total.split("\n")
budget['total'] = val[0].empty? ? '0' : val[0]
budget['budget'] = val[1].empty? ? '0' : val[1]
budget['difference'] = val[2].empty? ? '0' : val[2]
budget['percentage'] = val[3].empty? ? '0' : val[3]
end
budget.to_json
end
|