hledger-forecast 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -2
  3. data/README.md +150 -71
  4. data/example.journal +35 -0
  5. data/example.yml +35 -36
  6. data/hledger-forecast.gemspec +5 -4
  7. data/lib/hledger_forecast/cli.rb +35 -93
  8. data/lib/hledger_forecast/generator.rb +233 -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 +1 -1
  13. data/spec/command_spec.rb +14 -4
  14. data/spec/custom_spec.rb +35 -42
  15. data/spec/half-yearly_spec.rb +22 -6
  16. data/spec/modifier_spec.rb +87 -0
  17. data/spec/monthly_end_date_spec.rb +47 -0
  18. data/spec/monthly_end_date_transaction_spec.rb +32 -0
  19. data/spec/monthly_spec.rb +35 -27
  20. data/spec/once_spec.rb +22 -7
  21. data/spec/quarterly_spec.rb +21 -7
  22. data/spec/stubs/{monthly/forecast_monthly.yml → forecast.yml} +7 -7
  23. data/spec/stubs/transactions_found.journal +24 -0
  24. data/spec/stubs/transactions_found_inverse.journal +24 -0
  25. data/spec/stubs/transactions_not_found.journal +16 -0
  26. data/spec/track_spec.rb +197 -0
  27. data/spec/yearly_spec.rb +21 -7
  28. metadata +32 -74
  29. data/spec/start_date_spec.rb +0 -12
  30. data/spec/stubs/custom/forecast_custom_days.yml +0 -14
  31. data/spec/stubs/custom/forecast_custom_months.yml +0 -14
  32. data/spec/stubs/custom/forecast_custom_weeks.yml +0 -14
  33. data/spec/stubs/custom/forecast_custom_weeks_twice.yml +0 -24
  34. data/spec/stubs/custom/output_custom_days.journal +0 -24
  35. data/spec/stubs/custom/output_custom_months.journal +0 -20
  36. data/spec/stubs/custom/output_custom_weeks.journal +0 -28
  37. data/spec/stubs/custom/output_custom_weeks_twice.journal +0 -44
  38. data/spec/stubs/half-yearly/forecast_half-yearly.yml +0 -10
  39. data/spec/stubs/half-yearly/output_half-yearly.journal +0 -20
  40. data/spec/stubs/modifiers/forecast_modifiers.yml +0 -13
  41. data/spec/stubs/modifiers/output_modifiers.journal +0 -44
  42. data/spec/stubs/monthly/forecast_monthly_enddate.yml +0 -14
  43. data/spec/stubs/monthly/forecast_monthly_enddate_top.yml +0 -14
  44. data/spec/stubs/monthly/forecast_monthly_modifier.yml +0 -11
  45. data/spec/stubs/monthly/output_monthly.journal +0 -44
  46. data/spec/stubs/monthly/output_monthly_enddate.journal +0 -48
  47. data/spec/stubs/monthly/output_monthly_enddate_top.journal +0 -40
  48. data/spec/stubs/monthly/output_monthly_modifier.journal +0 -20
  49. data/spec/stubs/once/forecast_once.yml +0 -10
  50. data/spec/stubs/once/output_once.journal +0 -12
  51. data/spec/stubs/quarterly/forecast_quarterly.yml +0 -10
  52. data/spec/stubs/quarterly/output_quarterly.journal +0 -20
  53. data/spec/stubs/start_date/forecast_startdate.yml +0 -26
  54. data/spec/stubs/start_date/output_startdate.journal +0 -56
  55. data/spec/stubs/transactions.journal +0 -8
  56. data/spec/stubs/yearly/forecast_yearly.yml +0 -10
  57. data/spec/stubs/yearly/output_yearly.journal +0 -16
@@ -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
-