lunchmoney 1.3.0 → 1.4.1

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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +7 -0
  3. data/.github/workflows/build_and_publish_yard_docs.yml +2 -2
  4. data/.github/workflows/ci.yml +1 -1
  5. data/.ruby-version +1 -1
  6. data/.simplecov +2 -2
  7. data/Gemfile +2 -3
  8. data/Gemfile.lock +90 -84
  9. data/lib/lunchmoney/api.rb +1 -0
  10. data/lib/lunchmoney/calls/categories.rb +0 -2
  11. data/lib/lunchmoney/calls/transactions.rb +0 -1
  12. data/lib/lunchmoney/deprecate.rb +35 -0
  13. data/lib/lunchmoney/objects/asset.rb +6 -1
  14. data/lib/lunchmoney/objects/plaid_account.rb +6 -1
  15. data/lib/lunchmoney/objects/transaction.rb +9 -1
  16. data/lib/lunchmoney/version.rb +1 -1
  17. data/sorbet/rbi/annotations/activesupport.rbi +36 -0
  18. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  19. data/sorbet/rbi/gems/{activesupport@7.1.3.2.rbi → activesupport@7.2.2.1.rbi} +1407 -1292
  20. data/sorbet/rbi/gems/{addressable@2.8.6.rbi → addressable@2.8.7.rbi} +2 -1
  21. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +618 -0
  22. data/sorbet/rbi/gems/{bigdecimal@3.1.7.rbi → bigdecimal@3.1.9.rbi} +1 -0
  23. data/sorbet/rbi/gems/{chef-utils@18.4.2.rbi → chef-utils@18.5.0.rbi} +1 -0
  24. data/sorbet/rbi/gems/{concurrent-ruby@1.2.3.rbi → concurrent-ruby@1.3.5.rbi} +108 -41
  25. data/sorbet/rbi/gems/{connection_pool@2.4.1.rbi → connection_pool@2.5.0.rbi} +1 -0
  26. data/sorbet/rbi/gems/{docile@1.4.0.rbi → docile@1.4.1.rbi} +1 -0
  27. data/sorbet/rbi/gems/{dotenv@3.1.2.rbi → dotenv@3.1.7.rbi} +21 -29
  28. data/sorbet/rbi/gems/{erubi@1.12.0.rbi → erubi@1.13.1.rbi} +25 -15
  29. data/sorbet/rbi/gems/{faraday-net_http@3.1.0.rbi → faraday-net_http@3.4.0.rbi} +30 -29
  30. data/sorbet/rbi/gems/{faraday@2.9.0.rbi → faraday@2.12.2.rbi} +104 -49
  31. data/sorbet/rbi/gems/{hashdiff@1.1.0.rbi → hashdiff@1.1.2.rbi} +3 -2
  32. data/sorbet/rbi/gems/{i18n@1.14.4.rbi → i18n@1.14.7.rbi} +109 -80
  33. data/sorbet/rbi/gems/{json@2.7.2.rbi → json@2.10.2.rbi} +697 -146
  34. data/sorbet/rbi/gems/language_server-protocol@3.17.0.4.rbi +9 -0
  35. data/sorbet/rbi/gems/logger@1.6.6.rbi +940 -0
  36. data/sorbet/rbi/gems/{minitest@5.22.3.rbi → minitest@5.25.5.rbi} +319 -302
  37. data/sorbet/rbi/gems/{mixlib-shellout@3.2.7.rbi → mixlib-shellout@3.2.8.rbi} +1 -0
  38. data/sorbet/rbi/gems/{mocha@2.2.0.rbi → mocha@2.7.1.rbi} +174 -149
  39. data/sorbet/rbi/gems/{net-http@0.4.1.rbi → net-http@0.6.0.rbi} +360 -181
  40. data/sorbet/rbi/gems/{parallel@1.24.0.rbi → parallel@1.26.3.rbi} +32 -21
  41. data/sorbet/rbi/gems/{parser@3.3.1.0.rbi → parser@3.3.7.1.rbi} +256 -203
  42. data/sorbet/rbi/gems/{prism@0.29.0.rbi → prism@1.4.0.rbi} +15882 -12137
  43. data/sorbet/rbi/gems/{public_suffix@5.0.4.rbi → public_suffix@6.0.1.rbi} +1 -0
  44. data/sorbet/rbi/gems/{racc@1.7.3.rbi → racc@1.8.1.rbi} +34 -33
  45. data/sorbet/rbi/gems/{rack@3.0.10.rbi → rack@3.1.9.rbi} +704 -989
  46. data/sorbet/rbi/gems/{rake@13.1.0.rbi → rake@13.2.1.rbi} +56 -55
  47. data/sorbet/rbi/gems/rbi@0.3.1.rbi +6599 -0
  48. data/sorbet/rbi/gems/rbs@3.9.0.rbi +6978 -0
  49. data/sorbet/rbi/gems/{regexp_parser@2.9.1.rbi → regexp_parser@2.10.0.rbi} +195 -172
  50. data/sorbet/rbi/gems/{rexml@3.2.6.rbi → rexml@3.4.1.rbi} +844 -279
  51. data/sorbet/rbi/gems/{rubocop-ast@1.31.3.rbi → rubocop-ast@1.38.0.rbi} +1380 -732
  52. data/sorbet/rbi/gems/{rubocop-minitest@0.35.0.rbi → rubocop-minitest@0.36.0.rbi} +13 -10
  53. data/sorbet/rbi/gems/{rubocop-rails@2.24.1.rbi → rubocop-rails@2.29.1.rbi} +9604 -6343
  54. data/sorbet/rbi/gems/{rubocop-sorbet@0.8.3.rbi → rubocop-sorbet@0.8.7.rbi} +168 -67
  55. data/sorbet/rbi/gems/{rubocop@1.63.5.rbi → rubocop@1.71.2.rbi} +6831 -4378
  56. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +75 -0
  57. data/sorbet/rbi/gems/spoom@1.6.1.rbi +7274 -0
  58. data/sorbet/rbi/gems/{tapioca@0.14.1.rbi → tapioca@0.16.11.rbi} +471 -384
  59. data/sorbet/rbi/gems/{thor@1.3.1.rbi → thor@1.3.2.rbi} +58 -31
  60. data/sorbet/rbi/gems/{toys-core@0.15.5.rbi → toys-core@0.15.6.rbi} +1 -0
  61. data/sorbet/rbi/gems/{toys@0.15.5.rbi → toys@0.15.6.rbi} +4 -3
  62. data/sorbet/rbi/gems/unicode-display_width@3.1.4.rbi +132 -0
  63. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +251 -0
  64. data/sorbet/rbi/gems/{uri@0.13.0.rbi → uri@1.0.3.rbi} +278 -256
  65. data/sorbet/rbi/gems/{vcr@6.2.0.rbi → vcr@6.3.1.rbi} +72 -68
  66. data/sorbet/rbi/gems/{webmock@3.23.0.rbi → webmock@3.25.1.rbi} +102 -78
  67. data/sorbet/rbi/gems/{yard-sorbet@0.8.1.rbi → yard-sorbet@0.9.0.rbi} +36 -29
  68. data/sorbet/rbi/gems/{yard@0.9.36.rbi → yard@0.9.37.rbi} +394 -235
  69. metadata +55 -58
  70. data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -3426
  71. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +0 -14237
  72. data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -272
  73. data/sorbet/rbi/gems/mutex_m@0.2.0.rbi +0 -93
  74. data/sorbet/rbi/gems/pry-sorbet@0.2.1.rbi +0 -966
  75. data/sorbet/rbi/gems/pry@0.14.2.rbi +0 -10077
  76. data/sorbet/rbi/gems/rbi@0.1.13.rbi +0 -3078
  77. data/sorbet/rbi/gems/spoom@1.3.2.rbi +0 -4421
  78. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +0 -65
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6a73b1519cb5c9bf6a380532ad096247e2ee3207f25ea4dde1340622ac430524
4
- data.tar.gz: 9672889ae2f05b4d7318ac6e7b27bed03167ae702bc40564581472ccb7bfb4ef
3
+ metadata.gz: 50f3573ce7923a9282be65ac6fba693be82c2c51b8be11c268e23112fd06337c
4
+ data.tar.gz: 7be51f4d39ed969199ab04e36dda18acc8203b10c149cf3410d447bfc4794019
5
5
  SHA512:
6
- metadata.gz: 7f7eb6658f6a7248760ca874cb8758dc503d3c614f649b12cef3d02ec0894a780d642417bccca1d79a4de281341af18d3be3df3d722f193096055836310bfa37
7
- data.tar.gz: 7404fedca96ad83227865f6e23ab3a87451a650dc4562c5511e8fe97e8f580e2ccd04cd0c3a1ad3b9e3e4ce1bf6805dcbc047089dc1df74973da2f6aee6ae8aa
6
+ metadata.gz: b3686c260fd902ca41f82f4ffc00064ed39b3828e86a648c9b5e5720ad87256778e96617447b7880aba7733e953a88341f7f9426f068f855afb7b62c35559dd8
7
+ data.tar.gz: bcbf7d9ff45a32f0339df95660de9c5911ba556ef77becb44b21cdced5492b67bc6c3f764829bec6f87850e87269ee50326a97b3dbb4d9bad90f90ae1f259e52
@@ -11,6 +11,13 @@ updates:
11
11
  open-pull-requests-limit: 100
12
12
  schedule:
13
13
  interval: weekly
14
+ groups:
15
+ minor_updates:
16
+ update-types:
17
+ - "minor"
18
+ patch_updates:
19
+ update-types:
20
+ - "patch"
14
21
  - package-ecosystem: github-actions
15
22
  directory: "/"
16
23
  open-pull-requests-limit: 100
@@ -23,9 +23,9 @@ jobs:
23
23
  - uses: actions/checkout@v4
24
24
 
25
25
  - name: Set up Ruby
26
- uses: ruby/setup-ruby@v1.165.1
26
+ uses: ruby/setup-ruby@v1.218.0
27
27
  with:
28
- ruby-version: 3.3.0
28
+ ruby-version: head
29
29
  bundler-cache: true
30
30
 
31
31
  - name: Install YARD
@@ -51,7 +51,7 @@ jobs:
51
51
  -
52
52
  name: Run Tests (With Remote Calls & Coverage Report)
53
53
  if: ${{ endsWith(matrix.ruby-version, '3.3') }}
54
- uses: paambaati/codeclimate-action@v6.0.0
54
+ uses: paambaati/codeclimate-action@v9.0.0
55
55
  env:
56
56
  CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
57
57
  REMOTE_TESTS_ENABLED: ${{ vars.REMOTE_TESTS_ENABLED }}
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.3.0
1
+ 3.4.2
data/.simplecov CHANGED
@@ -8,8 +8,7 @@ else
8
8
  SimpleCov::Formatter::HTMLFormatter
9
9
  end
10
10
 
11
- SimpleCov.minimum_coverage(95)
12
- SimpleCov.maximum_coverage_drop(1)
11
+ SimpleCov.minimum_coverage(90)
13
12
  SimpleCov.start do
14
13
  enable_coverage :branch
15
14
  primary_coverage :branch
@@ -22,6 +21,7 @@ SimpleCov.start do
22
21
  "lib/lunchmoney.rb",
23
22
  "lib/lunchmoney/api.rb",
24
23
  "lib/lunchmoney/configuration.rb",
24
+ "lib/lunchmoney/deprecate.rb",
25
25
  "lib/lunchmoney/errors.rb",
26
26
  "lib/lunchmoney/exceptions.rb",
27
27
  "lib/lunchmoney/validators.rb",
data/Gemfile CHANGED
@@ -7,11 +7,10 @@ gemspec
7
7
 
8
8
  # Specify development dependencies here
9
9
  gem "toys"
10
- gem "minitest", "~> 5.22", require: false
11
- gem "mocha", "~> 2.2.0", require: false
10
+ gem "minitest", "~> 5.25", require: false
11
+ gem "mocha", "~> 2.7.1", require: false
12
12
  gem "webmock", require: false
13
13
  gem "vcr", require: false
14
- gem "pry-sorbet", "~> 0.2", require: false
15
14
  gem "rubocop-shopify", require: false
16
15
  gem "rubocop-sorbet", require: false
17
16
  gem "rubocop-minitest", require: false
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lunchmoney (1.3.0)
4
+ lunchmoney (1.4.1)
5
5
  activesupport (>= 6.1)
6
6
  faraday (>= 1.0.0)
7
7
  sorbet-runtime (>= 0.5)
@@ -9,166 +9,173 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- activesupport (7.1.3.2)
12
+ activesupport (7.2.2.1)
13
13
  base64
14
+ benchmark (>= 0.3)
14
15
  bigdecimal
15
- concurrent-ruby (~> 1.0, >= 1.0.2)
16
+ concurrent-ruby (~> 1.0, >= 1.3.1)
16
17
  connection_pool (>= 2.2.5)
17
18
  drb
18
19
  i18n (>= 1.6, < 2)
20
+ logger (>= 1.4.2)
19
21
  minitest (>= 5.1)
20
- mutex_m
21
- tzinfo (~> 2.0)
22
- addressable (2.8.6)
23
- public_suffix (>= 2.0.2, < 6.0)
22
+ securerandom (>= 0.3)
23
+ tzinfo (~> 2.0, >= 2.0.5)
24
+ addressable (2.8.7)
25
+ public_suffix (>= 2.0.2, < 7.0)
24
26
  appraisal (2.5.0)
25
27
  bundler
26
28
  rake
27
29
  thor (>= 0.14.0)
28
30
  ast (2.4.2)
29
31
  base64 (0.2.0)
30
- bigdecimal (3.1.7)
31
- chef-utils (18.4.2)
32
+ benchmark (0.4.0)
33
+ bigdecimal (3.1.9)
34
+ chef-utils (18.5.0)
32
35
  concurrent-ruby
33
- coderay (1.1.3)
34
- concurrent-ruby (1.2.3)
35
- connection_pool (2.4.1)
36
+ concurrent-ruby (1.3.5)
37
+ connection_pool (2.5.0)
36
38
  crack (1.0.0)
37
39
  bigdecimal
38
40
  rexml
39
- docile (1.4.0)
40
- dotenv (3.1.2)
41
+ docile (1.4.1)
42
+ dotenv (3.1.7)
41
43
  drb (2.2.1)
42
- erubi (1.12.0)
43
- faraday (2.9.0)
44
- faraday-net_http (>= 2.0, < 3.2)
45
- faraday-net_http (3.1.0)
46
- net-http
47
- hashdiff (1.1.0)
48
- i18n (1.14.4)
44
+ erubi (1.13.1)
45
+ faraday (2.12.2)
46
+ faraday-net_http (>= 2.0, < 3.5)
47
+ json
48
+ logger
49
+ faraday-net_http (3.4.0)
50
+ net-http (>= 0.5.0)
51
+ hashdiff (1.1.2)
52
+ i18n (1.14.7)
49
53
  concurrent-ruby (~> 1.0)
50
- json (2.7.2)
54
+ json (2.10.2)
51
55
  kramdown (2.4.0)
52
56
  rexml
53
57
  kramdown-parser-gfm (1.1.0)
54
58
  kramdown (~> 2.0)
55
- language_server-protocol (3.17.0.3)
59
+ language_server-protocol (3.17.0.4)
60
+ logger (1.6.6)
56
61
  mdl (0.13.0)
57
62
  kramdown (~> 2.3)
58
63
  kramdown-parser-gfm (~> 1.1)
59
64
  mixlib-cli (~> 2.1, >= 2.1.1)
60
65
  mixlib-config (>= 2.2.1, < 4)
61
66
  mixlib-shellout
62
- method_source (1.0.0)
63
- minitest (5.22.3)
67
+ minitest (5.25.5)
64
68
  mixlib-cli (2.1.8)
65
69
  mixlib-config (3.0.27)
66
70
  tomlrb
67
- mixlib-shellout (3.2.7)
71
+ mixlib-shellout (3.2.8)
68
72
  chef-utils
69
- mocha (2.2.0)
73
+ mocha (2.7.1)
70
74
  ruby2_keywords (>= 0.0.5)
71
- mutex_m (0.2.0)
72
- net-http (0.4.1)
75
+ net-http (0.6.0)
73
76
  uri
74
77
  netrc (0.11.0)
75
- parallel (1.24.0)
76
- parser (3.3.1.0)
78
+ parallel (1.26.3)
79
+ parser (3.3.7.1)
77
80
  ast (~> 2.4.1)
78
81
  racc
79
- prism (0.29.0)
80
- pry (0.14.2)
81
- coderay (~> 1.1)
82
- method_source (~> 1.0)
83
- pry-sorbet (0.2.1)
84
- pry
85
- public_suffix (5.0.4)
86
- racc (1.7.3)
87
- rack (3.0.10)
82
+ prism (1.4.0)
83
+ public_suffix (6.0.1)
84
+ racc (1.8.1)
85
+ rack (3.1.9)
88
86
  rainbow (3.1.1)
89
- rake (13.1.0)
90
- rbi (0.1.13)
91
- prism (>= 0.18.0, < 1.0.0)
87
+ rake (13.2.1)
88
+ rbi (0.3.1)
89
+ prism (~> 1.0)
90
+ rbs (>= 3.4.4)
92
91
  sorbet-runtime (>= 0.5.9204)
93
- regexp_parser (2.9.1)
94
- rexml (3.2.6)
95
- rubocop (1.63.5)
92
+ rbs (3.9.0)
93
+ logger
94
+ regexp_parser (2.10.0)
95
+ rexml (3.4.1)
96
+ rubocop (1.71.2)
96
97
  json (~> 2.3)
97
98
  language_server-protocol (>= 3.17.0)
98
99
  parallel (~> 1.10)
99
100
  parser (>= 3.3.0.2)
100
101
  rainbow (>= 2.2.2, < 4.0)
101
- regexp_parser (>= 1.8, < 3.0)
102
- rexml (>= 3.2.5, < 4.0)
103
- rubocop-ast (>= 1.31.1, < 2.0)
102
+ regexp_parser (>= 2.9.3, < 3.0)
103
+ rubocop-ast (>= 1.38.0, < 2.0)
104
104
  ruby-progressbar (~> 1.7)
105
- unicode-display_width (>= 2.4.0, < 3.0)
106
- rubocop-ast (1.31.3)
105
+ unicode-display_width (>= 2.4.0, < 4.0)
106
+ rubocop-ast (1.38.0)
107
107
  parser (>= 3.3.1.0)
108
- rubocop-minitest (0.35.0)
108
+ rubocop-minitest (0.36.0)
109
109
  rubocop (>= 1.61, < 2.0)
110
110
  rubocop-ast (>= 1.31.1, < 2.0)
111
- rubocop-rails (2.24.1)
111
+ rubocop-rails (2.29.1)
112
112
  activesupport (>= 4.2.0)
113
113
  rack (>= 1.1)
114
- rubocop (>= 1.33.0, < 2.0)
114
+ rubocop (>= 1.52.0, < 2.0)
115
115
  rubocop-ast (>= 1.31.1, < 2.0)
116
116
  rubocop-shopify (2.15.1)
117
117
  rubocop (~> 1.51)
118
- rubocop-sorbet (0.8.3)
119
- rubocop (>= 0.90.0)
118
+ rubocop-sorbet (0.8.7)
119
+ rubocop (>= 1)
120
120
  ruby-progressbar (1.13.0)
121
121
  ruby2_keywords (0.0.5)
122
+ securerandom (0.4.1)
122
123
  simplecov (0.22.0)
123
124
  docile (~> 1.1)
124
125
  simplecov-html (~> 0.11)
125
126
  simplecov_json_formatter (~> 0.1)
126
127
  simplecov-html (0.12.3)
127
128
  simplecov_json_formatter (0.1.4)
128
- sorbet (0.5.11372)
129
- sorbet-static (= 0.5.11372)
130
- sorbet-runtime (0.5.11372)
131
- sorbet-static (0.5.11372-universal-darwin)
132
- sorbet-static (0.5.11372-x86_64-linux)
133
- sorbet-static-and-runtime (0.5.11372)
134
- sorbet (= 0.5.11372)
135
- sorbet-runtime (= 0.5.11372)
136
- spoom (1.3.2)
129
+ sorbet (0.5.11953)
130
+ sorbet-static (= 0.5.11953)
131
+ sorbet-runtime (0.5.11953)
132
+ sorbet-static (0.5.11953-universal-darwin)
133
+ sorbet-static (0.5.11953-x86_64-linux)
134
+ sorbet-static-and-runtime (0.5.11953)
135
+ sorbet (= 0.5.11953)
136
+ sorbet-runtime (= 0.5.11953)
137
+ spoom (1.6.1)
137
138
  erubi (>= 1.10.0)
138
- prism (>= 0.19.0)
139
+ prism (>= 0.28.0)
140
+ rbi (>= 0.2.3)
139
141
  sorbet-static-and-runtime (>= 0.5.10187)
140
142
  thor (>= 0.19.2)
141
- tapioca (0.14.1)
143
+ tapioca (0.16.11)
144
+ benchmark
142
145
  bundler (>= 2.2.25)
143
146
  netrc (>= 0.11.0)
144
147
  parallel (>= 1.21.0)
145
- rbi (>= 0.1.4, < 0.2)
148
+ rbi (~> 0.2)
146
149
  sorbet-static-and-runtime (>= 0.5.11087)
147
150
  spoom (>= 1.2.0)
148
151
  thor (>= 1.2.0)
149
152
  yard-sorbet
150
- thor (1.3.1)
153
+ thor (1.3.2)
151
154
  tomlrb (2.0.3)
152
- toys (0.15.5)
153
- toys-core (= 0.15.5)
154
- toys-core (0.15.5)
155
+ toys (0.15.6)
156
+ toys-core (= 0.15.6)
157
+ toys-core (0.15.6)
155
158
  tzinfo (2.0.6)
156
159
  concurrent-ruby (~> 1.0)
157
- unicode-display_width (2.5.0)
158
- uri (0.13.0)
159
- vcr (6.2.0)
160
- webmock (3.23.0)
160
+ unicode-display_width (3.1.4)
161
+ unicode-emoji (~> 4.0, >= 4.0.4)
162
+ unicode-emoji (4.0.4)
163
+ uri (1.0.3)
164
+ vcr (6.3.1)
165
+ base64
166
+ webmock (3.25.1)
161
167
  addressable (>= 2.8.0)
162
168
  crack (>= 0.3.2)
163
169
  hashdiff (>= 0.4.0, < 2.0.0)
164
- yard (0.9.36)
165
- yard-sorbet (0.8.1)
166
- sorbet-runtime (>= 0.5)
167
- yard (>= 0.9)
170
+ yard (0.9.37)
171
+ yard-sorbet (0.9.0)
172
+ sorbet-runtime
173
+ yard
168
174
 
169
175
  PLATFORMS
170
176
  arm64-darwin-22
171
177
  arm64-darwin-23
178
+ arm64-darwin-24
172
179
  x86_64-darwin-20
173
180
  x86_64-linux
174
181
 
@@ -177,9 +184,8 @@ DEPENDENCIES
177
184
  dotenv
178
185
  lunchmoney!
179
186
  mdl
180
- minitest (~> 5.22)
181
- mocha (~> 2.2.0)
182
- pry-sorbet (~> 0.2)
187
+ minitest (~> 5.25)
188
+ mocha (~> 2.7.1)
183
189
  rubocop-minitest
184
190
  rubocop-rails
185
191
  rubocop-shopify
@@ -196,4 +202,4 @@ DEPENDENCIES
196
202
  yard-sorbet
197
203
 
198
204
  BUNDLED WITH
199
- 2.5.3
205
+ 2.6.6
@@ -3,6 +3,7 @@
3
3
 
4
4
  require_relative "exceptions"
5
5
  require_relative "configuration"
6
+ require_relative "deprecate"
6
7
 
7
8
  require_relative "calls/base"
8
9
  require_relative "objects/object"
@@ -89,7 +89,6 @@ module LunchMoney
89
89
  end
90
90
  def create_category_group(name:, description: nil, is_income: false, exclude_from_budget: false,
91
91
  exclude_from_totals: false, category_ids: [], new_categories: [])
92
-
93
92
  params = {
94
93
  name:,
95
94
  description:,
@@ -122,7 +121,6 @@ module LunchMoney
122
121
  end
123
122
  def update_category(category_id, name: nil, description: nil, is_income: nil, exclude_from_budget: nil,
124
123
  exclude_from_totals: nil, archived: nil, group_id: nil)
125
-
126
124
  params = clean_params({
127
125
  name:,
128
126
  description:,
@@ -42,7 +42,6 @@ module LunchMoney
42
42
  offset: nil,
43
43
  limit: nil
44
44
  )
45
-
46
45
  params = clean_params({
47
46
  tag_id:,
48
47
  recurring_id:,
@@ -0,0 +1,35 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module LunchMoney
5
+ module Deprecate
6
+ cattr_accessor :endpoint_deprecation_warnings, default: true
7
+
8
+ sig { params(replacement: T.nilable(String)).void }
9
+ def deprecate_endpoint(replacement = nil)
10
+ return unless endpoint_deprecation_warnings
11
+
12
+ replacement = if replacement.nil?
13
+ "There is currently no replacement for this endpoint"
14
+ else
15
+ "Please use #{replacement} instead"
16
+ end
17
+
18
+ message = "#{deprecated_endpoint} is deprecated and may be removed from LunchMoney | #{replacement}"
19
+ Kernel.warn(message)
20
+ end
21
+
22
+ private
23
+
24
+ sig { returns(String) }
25
+ def deprecated_endpoint
26
+ endpoint_call = Kernel.caller_locations.find { |call| call.to_s.include?("lunchmoney/calls") }
27
+
28
+ if endpoint_call.nil?
29
+ ""
30
+ else
31
+ "LunchMoney::Api##{endpoint_call.label}"
32
+ end
33
+ end
34
+ end
35
+ end
@@ -22,6 +22,9 @@ module LunchMoney
22
22
  sig { returns(T::Boolean) }
23
23
  attr_accessor :exclude_transactions
24
24
 
25
+ sig { returns(T.nilable(Number)) }
26
+ attr_accessor :to_base
27
+
25
28
  # Valid asset type names
26
29
  VALID_TYPE_NAMES = T.let(
27
30
  [
@@ -54,10 +57,11 @@ module LunchMoney
54
57
  display_name: T.nilable(String),
55
58
  closed_on: T.nilable(String),
56
59
  institution_name: T.nilable(String),
60
+ to_base: T.nilable(Number),
57
61
  ).void
58
62
  end
59
63
  def initialize(created_at:, type_name:, name:, balance:, balance_as_of:, currency:, exclude_transactions:, id:,
60
- subtype_name: nil, display_name: nil, closed_on: nil, institution_name: nil)
64
+ subtype_name: nil, display_name: nil, closed_on: nil, institution_name: nil, to_base: nil)
61
65
  super()
62
66
  @created_at = T.let(validate_iso8601!(created_at), String)
63
67
  @type_name = T.let(validate_one_of!(type_name, VALID_TYPE_NAMES), String)
@@ -71,6 +75,7 @@ module LunchMoney
71
75
  @display_name = display_name
72
76
  @closed_on = closed_on
73
77
  @institution_name = institution_name
78
+ @to_base = to_base
74
79
  end
75
80
 
76
81
  sig { params(name: String).void }
@@ -27,6 +27,9 @@ module LunchMoney
27
27
  sig { returns(T.nilable(Integer)) }
28
28
  attr_accessor :limit
29
29
 
30
+ sig { returns(T.nilable(Number)) }
31
+ attr_accessor :to_base
32
+
30
33
  sig do
31
34
  params(
32
35
  date_linked: String,
@@ -46,11 +49,12 @@ module LunchMoney
46
49
  subtype: T.nilable(String),
47
50
  import_start_date: T.nilable(String),
48
51
  last_fetch: T.nilable(String),
52
+ to_base: T.nilable(Number),
49
53
  ).void
50
54
  end
51
55
  def initialize(date_linked:, name:, type:, mask:, institution_name:, status:, balance:, currency:,
52
56
  balance_last_update:, display_name:, id:, plaid_last_successful_update:, last_import: nil, limit: nil,
53
- subtype: nil, import_start_date: nil, last_fetch: nil)
57
+ subtype: nil, import_start_date: nil, last_fetch: nil, to_base: nil)
54
58
  super()
55
59
  @id = id
56
60
  @date_linked = date_linked
@@ -69,6 +73,7 @@ module LunchMoney
69
73
  @last_import = last_import
70
74
  @last_fetch = last_fetch
71
75
  @plaid_last_successful_update = plaid_last_successful_update
76
+ @to_base = to_base
72
77
  end
73
78
  end
74
79
  end
@@ -53,6 +53,10 @@ module LunchMoney
53
53
  sig { returns(T.nilable(T::Array[LunchMoney::Objects::ChildTransaction])) }
54
54
  attr_accessor :children
55
55
 
56
+ # TODO: Fix types when I have a response on what they should be https://github.com/mmenanno/lunchmoney/issues/329
57
+ sig { returns(T.untyped) }
58
+ attr_accessor :recurring_granularity, :recurring_quantity
59
+
56
60
  sig do
57
61
  params(
58
62
  id: Integer,
@@ -103,6 +107,8 @@ module LunchMoney
103
107
  display_notes: T.nilable(String),
104
108
  external_id: T.nilable(Integer),
105
109
  children: T.nilable(T::Array[LunchMoney::Objects::ChildTransaction]),
110
+ recurring_granularity: T.untyped,
111
+ recurring_quantity: T.untyped,
106
112
  ).void
107
113
  end
108
114
  def initialize(id:, date:, amount:, currency:, to_base:, payee:, is_income:, exclude_from_budget:,
@@ -113,7 +119,7 @@ module LunchMoney
113
119
  recurring_currency: nil, parent_id: nil, group_id: nil, asset_id: nil, asset_institution_name: nil,
114
120
  asset_name: nil, asset_display_name: nil, asset_status: nil, plaid_account_id: nil, plaid_account_name: nil,
115
121
  plaid_account_mask: nil, institution_name: nil, plaid_account_display_name: nil, plaid_metadata: nil,
116
- display_notes: nil, external_id: nil, children: nil)
122
+ display_notes: nil, external_id: nil, children: nil, recurring_granularity: nil, recurring_quantity: nil)
117
123
  super(id:, date:, amount:, currency:, to_base:, payee:, notes:, asset_id:, plaid_account_id:)
118
124
  @is_income = is_income
119
125
  @exclude_from_budget = exclude_from_budget
@@ -154,6 +160,8 @@ module LunchMoney
154
160
  @display_notes = display_notes
155
161
  @children = children
156
162
  @external_id = external_id
163
+ @recurring_granularity = recurring_granularity
164
+ @recurring_quantity = recurring_quantity
157
165
  end
158
166
  end
159
167
  end
@@ -3,5 +3,5 @@
3
3
 
4
4
  module LunchMoney
5
5
  # Current version of the gem
6
- VERSION = "1.3.0"
6
+ VERSION = "1.4.1"
7
7
  end
@@ -80,11 +80,23 @@ class Object
80
80
  end
81
81
 
82
82
  class Hash
83
+ sig { returns(T::Boolean) }
84
+ def blank?; end
85
+
86
+ sig { returns(T::Boolean) }
87
+ def present?; end
88
+
83
89
  sig { returns(T::Boolean) }
84
90
  def extractable_options?; end
85
91
  end
86
92
 
87
93
  class Array
94
+ sig { returns(T::Boolean) }
95
+ def blank?; end
96
+
97
+ sig { returns(T::Boolean) }
98
+ def present?; end
99
+
88
100
  sig { params(position: Integer).returns(T.self_type) }
89
101
  def from(position); end
90
102
 
@@ -247,9 +259,21 @@ class Time
247
259
  # @shim: since `blank?` is always false, `present?` always returns `true`
248
260
  sig { returns(TrueClass) }
249
261
  def present?; end
262
+
263
+ sig { returns(ActiveSupport::TimeZone) }
264
+ def self.zone; end
265
+
266
+ sig { returns(T.any(ActiveSupport::TimeWithZone, ::Time)) }
267
+ def self.current; end
250
268
  end
251
269
 
252
270
  class Symbol
271
+ sig { returns(T::Boolean) }
272
+ def blank?; end
273
+
274
+ sig { returns(T::Boolean) }
275
+ def present?; end
276
+
253
277
  # alias for `#start_with?`
254
278
  sig { params(string_or_regexp: T.any(String, Regexp)).returns(T::Boolean) }
255
279
  def starts_with?(*string_or_regexp); end
@@ -263,6 +287,8 @@ class String
263
287
  sig { returns(TrueClass) }
264
288
  def acts_like_string?; end
265
289
 
290
+ # This is the subset of `#[]` sigs that have just 1 parameter.
291
+ # https://github.com/sorbet/sorbet/blob/40ad87b4dc7be23fa00c1369ac9f927053c68907/rbi/core/string.rbi#L270-L303
266
292
  sig { params(position: Integer).returns(T.nilable(String)) }
267
293
  sig { params(position: T.any(T::Range[Integer], Regexp)).returns(T.nilable(String)) }
268
294
  sig { params(position: String).returns(T.nilable(String)) }
@@ -347,6 +373,9 @@ class String
347
373
  sig { params(count: T.nilable(T.any(Integer, Symbol)), locale: T.nilable(Symbol)).returns(String) }
348
374
  def pluralize(count = nil, locale = :en); end
349
375
 
376
+ sig { returns(T::Boolean) }
377
+ def present?; end
378
+
350
379
  sig { params(patterns: T.any(String, Regexp)).returns(String) }
351
380
  def remove(*patterns); end
352
381
 
@@ -410,12 +439,19 @@ class String
410
439
  end
411
440
 
412
441
  class ActiveSupport::ErrorReporter
442
+ # @version >= 7.1.0.beta1
413
443
  sig { type_parameters(:Block, :Fallback).params(error_classes: T.class_of(Exception), severity: T.nilable(Symbol), context: T.nilable(T::Hash[Symbol, T.untyped]), fallback: T.nilable(T.proc.returns(T.type_parameter(:Fallback))), source: T.nilable(String), blk: T.proc.returns(T.type_parameter(:Block))).returns(T.any(T.type_parameter(:Block), T.type_parameter(:Fallback))) }
414
444
  def handle(*error_classes, severity: T.unsafe(nil), context: T.unsafe(nil), fallback: T.unsafe(nil), source: T.unsafe(nil), &blk); end
415
445
 
446
+ # @version >= 7.1.0.beta1
416
447
  sig { type_parameters(:Block).params(error_classes: T.class_of(Exception), severity: T.nilable(Symbol), context: T.nilable(T::Hash[Symbol, T.untyped]), source: T.nilable(String), blk: T.proc.returns(T.type_parameter(:Block))).returns(T.type_parameter(:Block)) }
417
448
  def record(*error_classes, severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil), &blk); end
418
449
 
450
+ # @version >= 7.1.0.beta1
419
451
  sig { params(error: Exception, handled: T::Boolean, severity: T.nilable(Symbol), context: T::Hash[Symbol, T.untyped], source: T.nilable(String)).void }
420
452
  def report(error, handled: true, severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil)); end
453
+
454
+ # @version >= 7.2.0.beta1
455
+ sig { params(error: T.any(Exception, String), severity: T.nilable(Symbol), context: T::Hash[Symbol, T.untyped], source: T.nilable(String)).void }
456
+ def unexpected(error, severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil)); end
421
457
  end