ledger-rest 4.0.1 → 4.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/ledger-rest/ledger/balance.rb +2 -1
- data/lib/ledger-rest/version.rb +1 -1
- data/spec/ledger-rest/api/balance_spec.rb +15 -60
- data/spec/ledger-rest/ledger/balance_spec.rb +46 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZWQxMGVjNzE3M2IzYjYxNGIwZjc2NTI5MDRjZTMzMDMzNjdmNGEwYw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YTU2ZmNmY2E1NWI1NGQwY2FlNzc0N2UxZDgwMzU4NDU1NDI0Yjc5Nw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MmUxMzYwMzFkMWU5NzdjZDE3ZjkwM2UyZjZmZjc2NWM0M2ExOTkwYTBmNTVi
|
10
|
+
YjY0ZTA0ZWEzY2MwMTc1ZGNkZTAxOTZmNTcxYzQ5OGM2MWZkODJlYzMzMjRl
|
11
|
+
OTE5N2RlNzFkNTgzNjg2ZGRmOTBhYTFiODhmNzI4MzRmYThlZjc=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YzFjNWY5MjNjOTU1ZjBmZDVhZWE4ZmFlZDcyMTI5ODY5ZDEzMDg3NDY4OTRj
|
14
|
+
MWFlOGE5MWU2YzVhMzVhMjZiZmNmYjk3MzAxNzc5ZjEzOThiZDA4ODJjYzIx
|
15
|
+
YTcxNGU1MDg1ZjQ3YjkyNGE0MWZiOWFjYWRlNTc3MjI1MzBhMGU=
|
@@ -16,6 +16,7 @@ module LedgerRest
|
|
16
16
|
data = JSON.parse(json(query, params), symbolize_names: true)
|
17
17
|
|
18
18
|
data[:accounts] = expand_accounts(data[:accounts])
|
19
|
+
|
19
20
|
unless query =~ /--flat/
|
20
21
|
data[:accounts] = wrap_accounts(data[:accounts])
|
21
22
|
end
|
@@ -25,7 +26,7 @@ module LedgerRest
|
|
25
26
|
|
26
27
|
def json(query = nil, params = {})
|
27
28
|
params = { '--format' => FORMAT }.merge(params)
|
28
|
-
result = Ledger.exec("bal #{query}", params)
|
29
|
+
result = Ledger.exec("bal #{query.gsub('--flat', '')}", params)
|
29
30
|
|
30
31
|
parser = Ledger::Parser.new
|
31
32
|
result.gsub! /\[\["(?<amounts>[^"]+)"\]\]/m do |a, b|
|
data/lib/ledger-rest/version.rb
CHANGED
@@ -138,93 +138,48 @@ describe '/balance' do
|
|
138
138
|
'accounts' =>
|
139
139
|
[
|
140
140
|
{
|
141
|
-
'totals' =>
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
],
|
141
|
+
'totals' => [{ 'amount' => 0.25, 'commodity' => 'BTC' }, { 'amount' => 3022.97, 'commodity' => 'EUR' }],
|
142
|
+
'name' => 'Assets',
|
143
|
+
'depth' => 1,
|
144
|
+
'fullname' => 'Assets'
|
145
|
+
}, {
|
146
|
+
'totals' => [{ 'amount' => 0.25, 'commodity' => 'BTC' }],
|
148
147
|
'name' => 'Bitcoin',
|
149
148
|
'depth' => 2,
|
150
149
|
'fullname' => 'Assets:Bitcoin'
|
151
150
|
}, {
|
152
|
-
'totals' =>
|
153
|
-
[
|
154
|
-
{
|
155
|
-
'amount' => 5.7,
|
156
|
-
'commodity' => 'EUR'
|
157
|
-
}
|
158
|
-
],
|
151
|
+
'totals' => [{ 'amount' => 5.7, 'commodity' => 'EUR' }],
|
159
152
|
'name' => 'Cash',
|
160
153
|
'depth' => 2,
|
161
154
|
'fullname' => 'Assets:Cash'
|
162
155
|
}, {
|
163
|
-
'totals' =>
|
164
|
-
[
|
165
|
-
{
|
166
|
-
'amount' => 2995.17,
|
167
|
-
'commodity' => 'EUR'
|
168
|
-
}
|
169
|
-
],
|
156
|
+
'totals' => [{ 'amount' => 2995.17, 'commodity' => 'EUR' }],
|
170
157
|
'name' => 'Giro',
|
171
158
|
'depth' => 2,
|
172
159
|
'fullname' => 'Assets:Giro'
|
173
160
|
}, {
|
174
|
-
'totals' =>
|
175
|
-
[
|
176
|
-
{
|
177
|
-
'amount' => 22.1,
|
178
|
-
'commodity' => 'EUR'
|
179
|
-
}
|
180
|
-
],
|
161
|
+
'totals' => [{ 'amount' => 22.1, 'commodity' => 'EUR' }],
|
181
162
|
'name' => 'Reimbursements',
|
182
163
|
'depth' => 2,
|
183
164
|
'fullname' => 'Assets:Reimbursements'
|
184
165
|
}, {
|
185
|
-
'totals' =>
|
186
|
-
[
|
187
|
-
{
|
188
|
-
'amount' => 22.1,
|
189
|
-
'commodity' => 'EUR'
|
190
|
-
}
|
191
|
-
],
|
166
|
+
'totals' => [{ 'amount' => 22.1, 'commodity' => 'EUR' }],
|
192
167
|
'name' => 'Hans Maulwurf',
|
193
168
|
'depth' => 3,
|
194
169
|
'fullname' => 'Assets:Reimbursements:Hans Maulwurf'
|
195
170
|
}, {
|
196
|
-
'totals' =>
|
197
|
-
[
|
198
|
-
{
|
199
|
-
'amount' => -12.0,
|
200
|
-
'commodity' => 'EUR'
|
201
|
-
}
|
202
|
-
],
|
171
|
+
'totals' => [{ 'amount' => -12.0, 'commodity' => 'EUR' }],
|
203
172
|
'name' => 'Liabilities',
|
204
173
|
'depth' => 1,
|
205
174
|
'fullname' => 'Liabilities'
|
206
175
|
}, {
|
207
|
-
'totals' =>
|
208
|
-
[
|
209
|
-
{
|
210
|
-
'amount' => -12.0,
|
211
|
-
'commodity' => 'EUR'
|
212
|
-
}
|
213
|
-
],
|
176
|
+
'totals' => [{ 'amount' => -12.0, 'commodity' => 'EUR' }],
|
214
177
|
'name' => 'Max Mustermann',
|
215
178
|
'depth' => 2,
|
216
|
-
'fullname' => 'Liabilities:Max Mustermann'
|
217
|
-
],
|
218
|
-
'totals' =>
|
219
|
-
[
|
220
|
-
{
|
221
|
-
'amount' => 0.25,
|
222
|
-
'commodity' => 'BTC'
|
223
|
-
}, {
|
224
|
-
'amount' => 3010.97,
|
225
|
-
'commodity' => 'EUR'
|
179
|
+
'fullname' => 'Liabilities:Max Mustermann'
|
226
180
|
}
|
227
|
-
]
|
181
|
+
],
|
182
|
+
'totals' => [{ 'amount' => 0.25, 'commodity' => 'BTC' }, { 'amount' => 3010.97, 'commodity' => 'EUR' }]
|
228
183
|
}
|
229
184
|
end
|
230
185
|
|
@@ -1,6 +1,52 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe LedgerRest::Ledger::Balance do
|
4
|
+
describe '::get' do
|
5
|
+
let(:json_with_root) do
|
6
|
+
{
|
7
|
+
accounts:
|
8
|
+
[
|
9
|
+
{
|
10
|
+
totals: [{ amount: 0.25, commodity: 'BTC' }, { amount: 3022.97, commodity: 'EUR' }],
|
11
|
+
name: 'Assets',
|
12
|
+
depth: 1,
|
13
|
+
fullname: 'Assets'
|
14
|
+
}, {
|
15
|
+
totals: [{ amount: 0.25, commodity: 'BTC' }],
|
16
|
+
name: 'Bitcoin',
|
17
|
+
depth: 2,
|
18
|
+
fullname: 'Assets:Bitcoin'
|
19
|
+
}, {
|
20
|
+
totals: [{ amount: 5.7, commodity: 'EUR' }],
|
21
|
+
name: 'Cash',
|
22
|
+
depth: 2,
|
23
|
+
fullname: 'Assets:Cash'
|
24
|
+
}, {
|
25
|
+
totals: [{ amount: 2995.17, commodity: 'EUR' }],
|
26
|
+
name: 'Giro',
|
27
|
+
depth: 2,
|
28
|
+
fullname: 'Assets:Giro'
|
29
|
+
}, {
|
30
|
+
totals: [{ amount: 22.1, commodity: 'EUR' }],
|
31
|
+
name: 'Reimbursements',
|
32
|
+
depth: 2,
|
33
|
+
fullname: 'Assets:Reimbursements'
|
34
|
+
}, {
|
35
|
+
totals: [{ amount: 22.1, commodity: 'EUR' }],
|
36
|
+
name: 'Hans Maulwurf',
|
37
|
+
depth: 3,
|
38
|
+
fullname: 'Assets:Reimbursements:Hans Maulwurf'
|
39
|
+
}
|
40
|
+
],
|
41
|
+
totals: [{ amount: 0.25, commodity: 'BTC' }, { amount: 3022.97, commodity: 'EUR' }]
|
42
|
+
}
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'removes the --flat flag from ledger command to gather root accounts aswell' do
|
46
|
+
LedgerRest::Ledger::Balance.get('--flat Assets').should deep_eq json_with_root
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
4
50
|
describe '::expand_accounts' do
|
5
51
|
let(:accounts) do
|
6
52
|
[
|