hledger-forecast 0.2.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -2
  3. data/README.md +169 -71
  4. data/example.journal +40 -0
  5. data/example.yml +38 -36
  6. data/hledger-forecast.gemspec +6 -4
  7. data/lib/hledger_forecast/cli.rb +35 -93
  8. data/lib/hledger_forecast/generator.rb +242 -90
  9. data/lib/hledger_forecast/summarize.rb +4 -5
  10. data/lib/hledger_forecast/tracker.rb +37 -0
  11. data/lib/hledger_forecast/version.rb +1 -1
  12. data/lib/hledger_forecast.rb +2 -1
  13. data/spec/command_spec.rb +14 -4
  14. data/spec/computed_amounts_spec.rb +35 -0
  15. data/spec/custom_spec.rb +35 -42
  16. data/spec/half-yearly_spec.rb +22 -6
  17. data/spec/modifier_spec.rb +87 -0
  18. data/spec/monthly_end_date_spec.rb +47 -0
  19. data/spec/monthly_end_date_transaction_spec.rb +32 -0
  20. data/spec/monthly_spec.rb +35 -27
  21. data/spec/once_spec.rb +22 -7
  22. data/spec/quarterly_spec.rb +21 -7
  23. data/spec/stubs/{monthly/forecast_monthly.yml → forecast.yml} +7 -7
  24. data/spec/stubs/transactions_found.journal +24 -0
  25. data/spec/stubs/transactions_found_inverse.journal +24 -0
  26. data/spec/stubs/transactions_not_found.journal +16 -0
  27. data/spec/track_spec.rb +197 -0
  28. data/spec/yearly_spec.rb +21 -7
  29. metadata +48 -74
  30. data/spec/start_date_spec.rb +0 -12
  31. data/spec/stubs/custom/forecast_custom_days.yml +0 -14
  32. data/spec/stubs/custom/forecast_custom_months.yml +0 -14
  33. data/spec/stubs/custom/forecast_custom_weeks.yml +0 -14
  34. data/spec/stubs/custom/forecast_custom_weeks_twice.yml +0 -24
  35. data/spec/stubs/custom/output_custom_days.journal +0 -24
  36. data/spec/stubs/custom/output_custom_months.journal +0 -20
  37. data/spec/stubs/custom/output_custom_weeks.journal +0 -28
  38. data/spec/stubs/custom/output_custom_weeks_twice.journal +0 -44
  39. data/spec/stubs/half-yearly/forecast_half-yearly.yml +0 -10
  40. data/spec/stubs/half-yearly/output_half-yearly.journal +0 -20
  41. data/spec/stubs/modifiers/forecast_modifiers.yml +0 -13
  42. data/spec/stubs/modifiers/output_modifiers.journal +0 -44
  43. data/spec/stubs/monthly/forecast_monthly_enddate.yml +0 -14
  44. data/spec/stubs/monthly/forecast_monthly_enddate_top.yml +0 -14
  45. data/spec/stubs/monthly/forecast_monthly_modifier.yml +0 -11
  46. data/spec/stubs/monthly/output_monthly.journal +0 -44
  47. data/spec/stubs/monthly/output_monthly_enddate.journal +0 -48
  48. data/spec/stubs/monthly/output_monthly_enddate_top.journal +0 -40
  49. data/spec/stubs/monthly/output_monthly_modifier.journal +0 -20
  50. data/spec/stubs/once/forecast_once.yml +0 -10
  51. data/spec/stubs/once/output_once.journal +0 -12
  52. data/spec/stubs/quarterly/forecast_quarterly.yml +0 -10
  53. data/spec/stubs/quarterly/output_quarterly.journal +0 -20
  54. data/spec/stubs/start_date/forecast_startdate.yml +0 -26
  55. data/spec/stubs/start_date/output_startdate.journal +0 -56
  56. data/spec/stubs/transactions.journal +0 -8
  57. data/spec/stubs/yearly/forecast_yearly.yml +0 -10
  58. data/spec/stubs/yearly/output_yearly.journal +0 -16
@@ -1,13 +0,0 @@
1
- monthly:
2
- - account: "[Assets:Bank]"
3
- start: "2023-03-01"
4
- transactions:
5
- - amount: 2000
6
- category: "[Expenses:Mortgage]"
7
- description: Mortgage
8
- modifier:
9
- amount: 2.0
10
- period: yearly
11
-
12
- settings:
13
- currency: GBP
@@ -1,44 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
9
- 2023-03-01 * Mortgage
10
- [Expenses:Mortgage] £2,000.00
11
- [Assets:Bank]
12
-
13
- 2023-03-01 * Food
14
- [Expenses:Food] £100.00
15
- [Assets:Bank]
16
-
17
- 2023-03-01 * Savings
18
- [Assets:Bank] -£1,000.00
19
- [Assets:Savings]
20
-
21
- 2023-04-01 * Mortgage
22
- [Expenses:Mortgage] £2,000.00
23
- [Assets:Bank]
24
-
25
- 2023-04-01 * Food
26
- [Expenses:Food] £100.00
27
- [Assets:Bank]
28
-
29
- 2023-04-01 * Savings
30
- [Assets:Bank] -£1,000.00
31
- [Assets:Savings]
32
-
33
- 2023-05-01 * Mortgage
34
- [Expenses:Mortgage] £2,000.00
35
- [Assets:Bank]
36
-
37
- 2023-05-01 * Food
38
- [Expenses:Food] £100.00
39
- [Assets:Bank]
40
-
41
- 2023-05-01 * Savings
42
- [Assets:Bank] -£1,000.00
43
- [Assets:Savings]
44
-
@@ -1,14 +0,0 @@
1
- settings:
2
- currency: GBP
3
-
4
- monthly:
5
- - start: "2023-03-01"
6
- account: "[Assets:Bank]"
7
- transactions:
8
- - description: Mortgage
9
- end: "2023-06-01"
10
- category: "[Expenses:Mortgage]"
11
- amount: 2,000.00
12
- - description: Food
13
- category: "[Expenses:Food]"
14
- amount: 100.00
@@ -1,14 +0,0 @@
1
- settings:
2
- currency: GBP
3
-
4
- monthly:
5
- - start: "2023-03-01"
6
- end: "2023-06-01"
7
- account: "[Assets:Bank]"
8
- transactions:
9
- - description: Mortgage
10
- category: "[Expenses:Mortgage]"
11
- amount: 2,000.00
12
- - description: Food
13
- category: "[Expenses:Food]"
14
- amount: 100.00
@@ -1,11 +0,0 @@
1
- settings:
2
- currency: GBP
3
-
4
- monthly:
5
- - start: "2023-03-01"
6
- account: "[Assets:Bank]"
7
- transactions:
8
- - description: Mortgage
9
- category: "[Expenses:Mortgage]"
10
- amount: 2,000.00
11
- modifier: 1.1x
@@ -1,44 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
9
- 2023-03-01 * Mortgage
10
- [Expenses:Mortgage] £2,000.55
11
- [Assets:Bank]
12
-
13
- 2023-03-01 * Food
14
- [Expenses:Food] £100.00
15
- [Assets:Bank]
16
-
17
- 2023-03-01 * Savings
18
- [Assets:Bank] -£1,000.00
19
- [Assets:Savings]
20
-
21
- 2023-04-01 * Mortgage
22
- [Expenses:Mortgage] £2,000.55
23
- [Assets:Bank]
24
-
25
- 2023-04-01 * Food
26
- [Expenses:Food] £100.00
27
- [Assets:Bank]
28
-
29
- 2023-04-01 * Savings
30
- [Assets:Bank] -£1,000.00
31
- [Assets:Savings]
32
-
33
- 2023-05-01 * Mortgage
34
- [Expenses:Mortgage] £2,000.55
35
- [Assets:Bank]
36
-
37
- 2023-05-01 * Food
38
- [Expenses:Food] £100.00
39
- [Assets:Bank]
40
-
41
- 2023-05-01 * Savings
42
- [Assets:Bank] -£1,000.00
43
- [Assets:Savings]
44
-
@@ -1,48 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
9
- 2023-03-01 * Mortgage
10
- [Expenses:Mortgage] £2,000.00
11
- [Assets:Bank]
12
-
13
- 2023-03-01 * Food
14
- [Expenses:Food] £100.00
15
- [Assets:Bank]
16
-
17
- 2023-04-01 * Mortgage
18
- [Expenses:Mortgage] £2,000.00
19
- [Assets:Bank]
20
-
21
- 2023-04-01 * Food
22
- [Expenses:Food] £100.00
23
- [Assets:Bank]
24
-
25
- 2023-05-01 * Mortgage
26
- [Expenses:Mortgage] £2,000.00
27
- [Assets:Bank]
28
-
29
- 2023-05-01 * Food
30
- [Expenses:Food] £100.00
31
- [Assets:Bank]
32
-
33
- 2023-06-01 * Mortgage
34
- [Expenses:Mortgage] £2,000.00
35
- [Assets:Bank]
36
-
37
- 2023-06-01 * Food
38
- [Expenses:Food] £100.00
39
- [Assets:Bank]
40
-
41
- 2023-07-01 * Food
42
- [Expenses:Food] £100.00
43
- [Assets:Bank]
44
-
45
- 2023-08-01 * Food
46
- [Expenses:Food] £100.00
47
- [Assets:Bank]
48
-
@@ -1,40 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
9
- 2023-03-01 * Mortgage
10
- [Expenses:Mortgage] £2,000.00
11
- [Assets:Bank]
12
-
13
- 2023-03-01 * Food
14
- [Expenses:Food] £100.00
15
- [Assets:Bank]
16
-
17
- 2023-04-01 * Mortgage
18
- [Expenses:Mortgage] £2,000.00
19
- [Assets:Bank]
20
-
21
- 2023-04-01 * Food
22
- [Expenses:Food] £100.00
23
- [Assets:Bank]
24
-
25
- 2023-05-01 * Mortgage
26
- [Expenses:Mortgage] £2,000.00
27
- [Assets:Bank]
28
-
29
- 2023-05-01 * Food
30
- [Expenses:Food] £100.00
31
- [Assets:Bank]
32
-
33
- 2023-06-01 * Mortgage
34
- [Expenses:Mortgage] £2,000.00
35
- [Assets:Bank]
36
-
37
- 2023-06-01 * Food
38
- [Expenses:Food] £100.00
39
- [Assets:Bank]
40
-
@@ -1,20 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
9
- 2023-03-01 * Mortgage
10
- [Expenses:Mortgage] £2,000.00
11
- [Assets:Bank]
12
-
13
- 2023-04-01 * Mortgage
14
- [Expenses:Mortgage] £2,000.00
15
- [Assets:Bank]
16
-
17
- 2023-05-01 * Mortgage
18
- [Expenses:Mortgage] £2,000.00
19
- [Assets:Bank]
20
-
@@ -1,10 +0,0 @@
1
- settings:
2
- currency: GBP
3
-
4
- once:
5
- - start: "2023-07-01"
6
- account: "[Assets:Bank]"
7
- transactions:
8
- - description: New Kitchen
9
- category: "[Expense:House]"
10
- amount: 5,000.00
@@ -1,12 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
9
- 2023-07-01 * New Kitchen
10
- [Expense:House] £5,000.00
11
- [Assets:Bank]
12
-
@@ -1,10 +0,0 @@
1
- settings:
2
- currency: GBP
3
-
4
- quarterly:
5
- - start: "2023-04-01"
6
- account: "[Assets:Bank]"
7
- transactions:
8
- - description: Bonus
9
- category: "[Income:Bonus]"
10
- amount: -1,000.00
@@ -1,20 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
9
- 2023-04-01 * Bonus
10
- [Income:Bonus] -£1,000.00
11
- [Assets:Bank]
12
-
13
- 2023-07-01 * Bonus
14
- [Income:Bonus] -£1,000.00
15
- [Assets:Bank]
16
-
17
- 2023-10-01 * Bonus
18
- [Income:Bonus] -£1,000.00
19
- [Assets:Bank]
20
-
@@ -1,26 +0,0 @@
1
- settings:
2
- currency: GBP
3
-
4
- monthly:
5
- - start: "2023-03-01"
6
- account: "[Assets:Bank]"
7
- transactions:
8
- - description: Monthly Mortgage
9
- start: "2023-06-01"
10
- category: "[Expenses:Mortgage]"
11
- amount: 2000
12
- - description: Monthly Food
13
- category: "[Expenses:Food]"
14
- amount: 100
15
-
16
- quarterly:
17
- - start: "2023-04-01"
18
- account: "[Assets:Bank]"
19
- transactions:
20
- - description: Quarterly Mortgage
21
- start: "2023-07-01"
22
- category: "[Expenses:Mortgage]"
23
- amount: 1000
24
- - description: Quarterly Food
25
- category: "[Expenses:Food]"
26
- amount: 50
@@ -1,56 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
9
- 2023-03-01 * Monthly Food
10
- [Expenses:Food] £100.00
11
- [Assets:Bank]
12
-
13
- 2023-04-01 * Monthly Food
14
- [Expenses:Food] £100.00
15
- [Assets:Bank]
16
-
17
- 2023-04-01 * Quarterly Food
18
- [Expenses:Food] £50.00
19
- [Assets:Bank]
20
-
21
- 2023-05-01 * Monthly Food
22
- [Expenses:Food] £100.00
23
- [Assets:Bank]
24
-
25
- 2023-06-01 * Monthly Mortgage
26
- [Expenses:Mortgage] £2,000.00
27
- [Assets:Bank]
28
-
29
- 2023-06-01 * Monthly Food
30
- [Expenses:Food] £100.00
31
- [Assets:Bank]
32
-
33
- 2023-07-01 * Monthly Mortgage
34
- [Expenses:Mortgage] £2,000.00
35
- [Assets:Bank]
36
-
37
- 2023-07-01 * Monthly Food
38
- [Expenses:Food] £100.00
39
- [Assets:Bank]
40
-
41
- 2023-07-01 * Quarterly Mortgage
42
- [Expenses:Mortgage] £1,000.00
43
- [Assets:Bank]
44
-
45
- 2023-07-01 * Quarterly Food
46
- [Expenses:Food] £50.00
47
- [Assets:Bank]
48
-
49
- 2023-08-01 * Monthly Mortgage
50
- [Expenses:Mortgage] £2,000.00
51
- [Assets:Bank]
52
-
53
- 2023-08-01 * Monthly Food
54
- [Expenses:Food] £100.00
55
- [Assets:Bank]
56
-
@@ -1,8 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
@@ -1,10 +0,0 @@
1
- settings:
2
- currency: GBP
3
-
4
- yearly:
5
- - start: "2023-04-01"
6
- account: "[Assets:Bank]"
7
- transactions:
8
- - description: Bonus
9
- category: "[Income:Bonus]"
10
- amount: -3,000.00
@@ -1,16 +0,0 @@
1
- 2023-02-01 * Opening balance
2
- Assets:Bank £1,000.00
3
- Equity:Opening balance
4
-
5
- 2023-02-05 * Mortgage payment
6
- Expenses:Mortgage £1,500.00
7
- Assets:Bank
8
-
9
- 2023-04-01 * Bonus
10
- [Income:Bonus] -£3,000.00
11
- [Assets:Bank]
12
-
13
- 2024-04-01 * Bonus
14
- [Income:Bonus] -£3,000.00
15
- [Assets:Bank]
16
-