lunchmoney 1.2.0 → 1.4.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.
- checksums.yaml +4 -4
- data/.github/workflows/build_and_publish_yard_docs.yml +1 -1
- data/.github/workflows/check_pipeline.yml +2 -2
- data/.github/workflows/ci.yml +1 -1
- data/.github/workflows/{dependabot-rbi-updater.yml → rbi-updater.yml} +2 -3
- data/.simplecov +1 -2
- data/Gemfile +2 -3
- data/Gemfile.lock +70 -75
- data/lib/lunchmoney/objects/transaction.rb +9 -1
- data/lib/lunchmoney/objects/user.rb +4 -1
- data/lib/lunchmoney/version.rb +1 -1
- data/sorbet/rbi/annotations/activesupport.rbi +31 -0
- data/sorbet/rbi/annotations/minitest.rbi +119 -0
- data/sorbet/rbi/dsl/active_support/callbacks.rbi +1 -0
- data/sorbet/rbi/gems/{activesupport@7.1.3.2.rbi → activesupport@7.2.1.rbi} +1345 -1253
- data/sorbet/rbi/gems/{addressable@2.8.6.rbi → addressable@2.8.7.rbi} +2 -1
- data/sorbet/rbi/gems/{bigdecimal@3.1.7.rbi → bigdecimal@3.1.8.rbi} +1 -0
- data/sorbet/rbi/gems/{chef-utils@18.4.2.rbi → chef-utils@18.5.0.rbi} +1 -0
- data/sorbet/rbi/gems/{concurrent-ruby@1.2.3.rbi → concurrent-ruby@1.3.4.rbi} +64 -9
- data/sorbet/rbi/gems/{docile@1.4.0.rbi → docile@1.4.1.rbi} +1 -0
- data/sorbet/rbi/gems/{dotenv@3.1.0.rbi → dotenv@3.1.2.rbi} +20 -17
- data/sorbet/rbi/gems/{erubi@1.12.0.rbi → erubi@1.13.0.rbi} +20 -15
- data/sorbet/rbi/gems/{faraday-net_http@3.1.0.rbi → faraday-net_http@3.1.1.rbi} +36 -35
- data/sorbet/rbi/gems/{faraday@2.9.0.rbi → faraday@2.10.1.rbi} +79 -33
- data/sorbet/rbi/gems/{hashdiff@1.1.0.rbi → hashdiff@1.1.1.rbi} +3 -2
- data/sorbet/rbi/gems/{i18n@1.14.4.rbi → i18n@1.14.5.rbi} +43 -14
- data/sorbet/rbi/gems/{json@2.7.1.rbi → json@2.7.2.rbi} +72 -72
- data/sorbet/rbi/gems/logger@1.6.0.rbi +903 -0
- data/sorbet/rbi/gems/{minitest@5.22.3.rbi → minitest@5.25.1.rbi} +245 -235
- data/sorbet/rbi/gems/{mixlib-shellout@3.2.7.rbi → mixlib-shellout@3.2.8.rbi} +1 -0
- data/sorbet/rbi/gems/{mocha@2.1.0.rbi → mocha@2.4.5.rbi} +169 -144
- data/sorbet/rbi/gems/{parallel@1.24.0.rbi → parallel@1.26.3.rbi} +32 -21
- data/sorbet/rbi/gems/{parser@3.3.0.5.rbi → parser@3.3.4.2.rbi} +233 -186
- data/sorbet/rbi/gems/{prism@0.24.0.rbi → prism@0.30.0.rbi} +20933 -12761
- data/sorbet/rbi/gems/{public_suffix@5.0.4.rbi → public_suffix@6.0.1.rbi} +1 -0
- data/sorbet/rbi/gems/{racc@1.7.3.rbi → racc@1.8.1.rbi} +34 -33
- data/sorbet/rbi/gems/{rack@3.0.10.rbi → rack@3.1.7.rbi} +694 -987
- data/sorbet/rbi/gems/{rake@13.1.0.rbi → rake@13.2.1.rbi} +56 -55
- data/sorbet/rbi/gems/{rbi@0.1.9.rbi → rbi@0.1.14.rbi} +904 -622
- data/sorbet/rbi/gems/{regexp_parser@2.9.0.rbi → regexp_parser@2.9.2.rbi} +3 -2
- data/sorbet/rbi/gems/{rexml@3.2.6.rbi → rexml@3.3.6.rbi} +383 -245
- data/sorbet/rbi/gems/{rubocop-ast@1.31.2.rbi → rubocop-ast@1.32.1.rbi} +393 -349
- data/sorbet/rbi/gems/{rubocop-minitest@0.35.0.rbi → rubocop-minitest@0.35.1.rbi} +11 -8
- data/sorbet/rbi/gems/{rubocop-rails@2.24.1.rbi → rubocop-rails@2.26.0.rbi} +604 -275
- data/sorbet/rbi/gems/{rubocop-sorbet@0.8.0.rbi → rubocop-sorbet@0.8.5.rbi} +253 -127
- data/sorbet/rbi/gems/{rubocop@1.62.1.rbi → rubocop@1.65.1.rbi} +2334 -1779
- data/sorbet/rbi/gems/securerandom@0.3.1.rbi +73 -0
- data/sorbet/rbi/gems/{spoom@1.2.4.rbi → spoom@1.4.2.rbi} +2003 -848
- data/sorbet/rbi/gems/strscan@3.1.0.rbi +9 -0
- data/sorbet/rbi/gems/{tapioca@0.13.1.rbi → tapioca@0.16.1.rbi} +294 -259
- data/sorbet/rbi/gems/{toys-core@0.15.5.rbi → toys-core@0.15.6.rbi} +1 -0
- data/sorbet/rbi/gems/{toys@0.15.5.rbi → toys@0.15.6.rbi} +4 -3
- data/sorbet/rbi/gems/{vcr@6.2.0.rbi → vcr@6.3.1.rbi} +72 -68
- data/sorbet/rbi/gems/{webmock@3.23.0.rbi → webmock@3.23.1.rbi} +1 -0
- data/sorbet/rbi/gems/{yard-sorbet@0.8.1.rbi → yard-sorbet@0.9.0.rbi} +36 -29
- metadata +46 -49
- data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -3426
- data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -272
- data/sorbet/rbi/gems/mutex_m@0.2.0.rbi +0 -93
- data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +0 -951
- data/sorbet/rbi/gems/pry-sorbet@0.2.1.rbi +0 -966
- data/sorbet/rbi/gems/pry@0.14.2.rbi +0 -10077
- data/sorbet/rbi/gems/syntax_tree@6.2.0.rbi +0 -23136
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3bcd23a0d41ac030c6a7d3a99c6438d363cfe100d1c1349f8ff8ab07e9da5a1b
|
4
|
+
data.tar.gz: a1021db38ff1305b39733d80d69681b74c05190521e1c38fe6b47afce0fc7f6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1dd9b667746978ea1033cba76a0f23082f040da1de55122aa45a7114eb572fb0580140f7bac48c53fb3ad52e560babb8e13bbb2f6766f8ca61a8fcc99308b721
|
7
|
+
data.tar.gz: 4e84da79f6ae55f67c6f388c470346e541541553abf764a3365509990d2c6bce62ea96f66e9f0e960d4f1c394e1d67a969eecfefcc668942b954798eb278cdaf
|
@@ -13,12 +13,12 @@ on:
|
|
13
13
|
jobs:
|
14
14
|
update-rbis:
|
15
15
|
name: RBI Updater
|
16
|
-
uses: ./.github/workflows/
|
16
|
+
uses: ./.github/workflows/rbi-updater.yml
|
17
17
|
secrets: inherit
|
18
18
|
|
19
19
|
ci:
|
20
20
|
needs: update-rbis
|
21
|
-
if: always() && contains(needs.*.result, '
|
21
|
+
if: always() && contains(needs.*.result, 'success')
|
22
22
|
name: "CI"
|
23
23
|
uses: ./.github/workflows/ci.yml
|
24
24
|
secrets: inherit
|
data/.github/workflows/ci.yml
CHANGED
@@ -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@
|
54
|
+
uses: paambaati/codeclimate-action@v8.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 }}
|
@@ -1,11 +1,10 @@
|
|
1
|
-
name:
|
1
|
+
name: RBI Updater
|
2
2
|
on:
|
3
3
|
workflow_call:
|
4
4
|
|
5
5
|
jobs:
|
6
6
|
update-rbis:
|
7
7
|
runs-on: ubuntu-latest
|
8
|
-
if: ${{ github.triggering_actor == 'dependabot[bot]' }}
|
9
8
|
|
10
9
|
steps:
|
11
10
|
-
|
@@ -26,7 +25,7 @@ jobs:
|
|
26
25
|
-
|
27
26
|
name: Commit RBIs
|
28
27
|
run: |
|
29
|
-
git config --local user.name "
|
28
|
+
git config --local user.name "RBI Updater"
|
30
29
|
git config --local user.email action@github.com
|
31
30
|
git add sorbet/*
|
32
31
|
git diff-index --cached --quiet HEAD || git commit -m "[dependabot skip] Update RBIs"
|
data/.simplecov
CHANGED
data/Gemfile
CHANGED
@@ -7,11 +7,10 @@ gemspec
|
|
7
7
|
|
8
8
|
# Specify development dependencies here
|
9
9
|
gem "toys"
|
10
|
-
gem "minitest", "~> 5.
|
11
|
-
gem "mocha", "~> 2.
|
10
|
+
gem "minitest", "~> 5.24", require: false
|
11
|
+
gem "mocha", "~> 2.4.0", 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.
|
4
|
+
lunchmoney (1.4.0)
|
5
5
|
activesupport (>= 6.1)
|
6
6
|
faraday (>= 1.0.0)
|
7
7
|
sorbet-runtime (>= 0.5)
|
@@ -9,165 +9,161 @@ PATH
|
|
9
9
|
GEM
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
|
-
activesupport (7.1
|
12
|
+
activesupport (7.2.1)
|
13
13
|
base64
|
14
14
|
bigdecimal
|
15
|
-
concurrent-ruby (~> 1.0, >= 1.
|
15
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
16
16
|
connection_pool (>= 2.2.5)
|
17
17
|
drb
|
18
18
|
i18n (>= 1.6, < 2)
|
19
|
+
logger (>= 1.4.2)
|
19
20
|
minitest (>= 5.1)
|
20
|
-
|
21
|
-
tzinfo (~> 2.0)
|
22
|
-
addressable (2.8.
|
23
|
-
public_suffix (>= 2.0.2, <
|
21
|
+
securerandom (>= 0.3)
|
22
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
23
|
+
addressable (2.8.7)
|
24
|
+
public_suffix (>= 2.0.2, < 7.0)
|
24
25
|
appraisal (2.5.0)
|
25
26
|
bundler
|
26
27
|
rake
|
27
28
|
thor (>= 0.14.0)
|
28
29
|
ast (2.4.2)
|
29
30
|
base64 (0.2.0)
|
30
|
-
bigdecimal (3.1.
|
31
|
-
chef-utils (18.
|
31
|
+
bigdecimal (3.1.8)
|
32
|
+
chef-utils (18.5.0)
|
32
33
|
concurrent-ruby
|
33
|
-
|
34
|
-
concurrent-ruby (1.2.3)
|
34
|
+
concurrent-ruby (1.3.4)
|
35
35
|
connection_pool (2.4.1)
|
36
36
|
crack (1.0.0)
|
37
37
|
bigdecimal
|
38
38
|
rexml
|
39
|
-
docile (1.4.
|
40
|
-
dotenv (3.1.
|
39
|
+
docile (1.4.1)
|
40
|
+
dotenv (3.1.2)
|
41
41
|
drb (2.2.1)
|
42
|
-
erubi (1.
|
43
|
-
faraday (2.
|
42
|
+
erubi (1.13.0)
|
43
|
+
faraday (2.10.1)
|
44
44
|
faraday-net_http (>= 2.0, < 3.2)
|
45
|
-
|
45
|
+
logger
|
46
|
+
faraday-net_http (3.1.1)
|
46
47
|
net-http
|
47
|
-
hashdiff (1.1.
|
48
|
-
i18n (1.14.
|
48
|
+
hashdiff (1.1.1)
|
49
|
+
i18n (1.14.5)
|
49
50
|
concurrent-ruby (~> 1.0)
|
50
|
-
json (2.7.
|
51
|
+
json (2.7.2)
|
51
52
|
kramdown (2.4.0)
|
52
53
|
rexml
|
53
54
|
kramdown-parser-gfm (1.1.0)
|
54
55
|
kramdown (~> 2.0)
|
55
56
|
language_server-protocol (3.17.0.3)
|
57
|
+
logger (1.6.0)
|
56
58
|
mdl (0.13.0)
|
57
59
|
kramdown (~> 2.3)
|
58
60
|
kramdown-parser-gfm (~> 1.1)
|
59
61
|
mixlib-cli (~> 2.1, >= 2.1.1)
|
60
62
|
mixlib-config (>= 2.2.1, < 4)
|
61
63
|
mixlib-shellout
|
62
|
-
|
63
|
-
minitest (5.22.3)
|
64
|
+
minitest (5.25.1)
|
64
65
|
mixlib-cli (2.1.8)
|
65
66
|
mixlib-config (3.0.27)
|
66
67
|
tomlrb
|
67
|
-
mixlib-shellout (3.2.
|
68
|
+
mixlib-shellout (3.2.8)
|
68
69
|
chef-utils
|
69
|
-
mocha (2.
|
70
|
+
mocha (2.4.5)
|
70
71
|
ruby2_keywords (>= 0.0.5)
|
71
|
-
mutex_m (0.2.0)
|
72
72
|
net-http (0.4.1)
|
73
73
|
uri
|
74
74
|
netrc (0.11.0)
|
75
|
-
parallel (1.
|
76
|
-
parser (3.3.
|
75
|
+
parallel (1.26.3)
|
76
|
+
parser (3.3.4.2)
|
77
77
|
ast (~> 2.4.1)
|
78
78
|
racc
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
method_source (~> 1.0)
|
84
|
-
pry-sorbet (0.2.1)
|
85
|
-
pry
|
86
|
-
public_suffix (5.0.4)
|
87
|
-
racc (1.7.3)
|
88
|
-
rack (3.0.10)
|
79
|
+
prism (0.30.0)
|
80
|
+
public_suffix (6.0.1)
|
81
|
+
racc (1.8.1)
|
82
|
+
rack (3.1.7)
|
89
83
|
rainbow (3.1.1)
|
90
|
-
rake (13.1
|
91
|
-
rbi (0.1.
|
92
|
-
prism (>= 0.18.0, < 0.
|
84
|
+
rake (13.2.1)
|
85
|
+
rbi (0.1.14)
|
86
|
+
prism (>= 0.18.0, < 1.0.0)
|
93
87
|
sorbet-runtime (>= 0.5.9204)
|
94
|
-
regexp_parser (2.9.
|
95
|
-
rexml (3.
|
96
|
-
|
88
|
+
regexp_parser (2.9.2)
|
89
|
+
rexml (3.3.6)
|
90
|
+
strscan
|
91
|
+
rubocop (1.65.1)
|
97
92
|
json (~> 2.3)
|
98
93
|
language_server-protocol (>= 3.17.0)
|
99
94
|
parallel (~> 1.10)
|
100
95
|
parser (>= 3.3.0.2)
|
101
96
|
rainbow (>= 2.2.2, < 4.0)
|
102
|
-
regexp_parser (>=
|
97
|
+
regexp_parser (>= 2.4, < 3.0)
|
103
98
|
rexml (>= 3.2.5, < 4.0)
|
104
99
|
rubocop-ast (>= 1.31.1, < 2.0)
|
105
100
|
ruby-progressbar (~> 1.7)
|
106
101
|
unicode-display_width (>= 2.4.0, < 3.0)
|
107
|
-
rubocop-ast (1.
|
108
|
-
parser (>= 3.3.0
|
109
|
-
rubocop-minitest (0.35.
|
102
|
+
rubocop-ast (1.32.1)
|
103
|
+
parser (>= 3.3.1.0)
|
104
|
+
rubocop-minitest (0.35.1)
|
110
105
|
rubocop (>= 1.61, < 2.0)
|
111
106
|
rubocop-ast (>= 1.31.1, < 2.0)
|
112
|
-
rubocop-rails (2.
|
107
|
+
rubocop-rails (2.26.0)
|
113
108
|
activesupport (>= 4.2.0)
|
114
109
|
rack (>= 1.1)
|
115
|
-
rubocop (>= 1.
|
110
|
+
rubocop (>= 1.52.0, < 2.0)
|
116
111
|
rubocop-ast (>= 1.31.1, < 2.0)
|
117
112
|
rubocop-shopify (2.15.1)
|
118
113
|
rubocop (~> 1.51)
|
119
|
-
rubocop-sorbet (0.8.
|
120
|
-
rubocop (>=
|
114
|
+
rubocop-sorbet (0.8.5)
|
115
|
+
rubocop (>= 1)
|
121
116
|
ruby-progressbar (1.13.0)
|
122
117
|
ruby2_keywords (0.0.5)
|
118
|
+
securerandom (0.3.1)
|
123
119
|
simplecov (0.22.0)
|
124
120
|
docile (~> 1.1)
|
125
121
|
simplecov-html (~> 0.11)
|
126
122
|
simplecov_json_formatter (~> 0.1)
|
127
123
|
simplecov-html (0.12.3)
|
128
124
|
simplecov_json_formatter (0.1.4)
|
129
|
-
sorbet (0.5.
|
130
|
-
sorbet-static (= 0.5.
|
131
|
-
sorbet-runtime (0.5.
|
132
|
-
sorbet-static (0.5.
|
133
|
-
sorbet-static (0.5.
|
134
|
-
sorbet-static-and-runtime (0.5.
|
135
|
-
sorbet (= 0.5.
|
136
|
-
sorbet-runtime (= 0.5.
|
137
|
-
spoom (1.2
|
125
|
+
sorbet (0.5.11545)
|
126
|
+
sorbet-static (= 0.5.11545)
|
127
|
+
sorbet-runtime (0.5.11545)
|
128
|
+
sorbet-static (0.5.11545-universal-darwin)
|
129
|
+
sorbet-static (0.5.11545-x86_64-linux)
|
130
|
+
sorbet-static-and-runtime (0.5.11545)
|
131
|
+
sorbet (= 0.5.11545)
|
132
|
+
sorbet-runtime (= 0.5.11545)
|
133
|
+
spoom (1.4.2)
|
138
134
|
erubi (>= 1.10.0)
|
135
|
+
prism (>= 0.28.0)
|
139
136
|
sorbet-static-and-runtime (>= 0.5.10187)
|
140
|
-
syntax_tree (>= 6.1.1)
|
141
137
|
thor (>= 0.19.2)
|
142
|
-
|
143
|
-
|
144
|
-
tapioca (0.13.1)
|
138
|
+
strscan (3.1.0)
|
139
|
+
tapioca (0.16.1)
|
145
140
|
bundler (>= 2.2.25)
|
146
141
|
netrc (>= 0.11.0)
|
147
142
|
parallel (>= 1.21.0)
|
148
|
-
rbi (>= 0.1.
|
143
|
+
rbi (>= 0.1.14, < 0.2)
|
149
144
|
sorbet-static-and-runtime (>= 0.5.11087)
|
150
145
|
spoom (>= 1.2.0)
|
151
146
|
thor (>= 1.2.0)
|
152
147
|
yard-sorbet
|
153
148
|
thor (1.3.1)
|
154
149
|
tomlrb (2.0.3)
|
155
|
-
toys (0.15.
|
156
|
-
toys-core (= 0.15.
|
157
|
-
toys-core (0.15.
|
150
|
+
toys (0.15.6)
|
151
|
+
toys-core (= 0.15.6)
|
152
|
+
toys-core (0.15.6)
|
158
153
|
tzinfo (2.0.6)
|
159
154
|
concurrent-ruby (~> 1.0)
|
160
155
|
unicode-display_width (2.5.0)
|
161
156
|
uri (0.13.0)
|
162
|
-
vcr (6.
|
163
|
-
|
157
|
+
vcr (6.3.1)
|
158
|
+
base64
|
159
|
+
webmock (3.23.1)
|
164
160
|
addressable (>= 2.8.0)
|
165
161
|
crack (>= 0.3.2)
|
166
162
|
hashdiff (>= 0.4.0, < 2.0.0)
|
167
163
|
yard (0.9.36)
|
168
|
-
yard-sorbet (0.
|
169
|
-
sorbet-runtime
|
170
|
-
yard
|
164
|
+
yard-sorbet (0.9.0)
|
165
|
+
sorbet-runtime
|
166
|
+
yard
|
171
167
|
|
172
168
|
PLATFORMS
|
173
169
|
arm64-darwin-22
|
@@ -180,9 +176,8 @@ DEPENDENCIES
|
|
180
176
|
dotenv
|
181
177
|
lunchmoney!
|
182
178
|
mdl
|
183
|
-
minitest (~> 5.
|
184
|
-
mocha (~> 2.
|
185
|
-
pry-sorbet (~> 0.2)
|
179
|
+
minitest (~> 5.24)
|
180
|
+
mocha (~> 2.4.0)
|
186
181
|
rubocop-minitest
|
187
182
|
rubocop-rails
|
188
183
|
rubocop-shopify
|
@@ -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
|
@@ -21,16 +21,19 @@ module LunchMoney
|
|
21
21
|
user_email: String,
|
22
22
|
account_id: Integer,
|
23
23
|
budget_name: String,
|
24
|
+
primary_currency: String,
|
24
25
|
api_key_label: T.nilable(String),
|
25
26
|
).void
|
26
27
|
end
|
27
|
-
def initialize(user_id:, user_name:, user_email:, account_id:, budget_name:,
|
28
|
+
def initialize(user_id:, user_name:, user_email:, account_id:, budget_name:, primary_currency:,
|
29
|
+
api_key_label: nil)
|
28
30
|
super()
|
29
31
|
@user_id = user_id
|
30
32
|
@user_name = user_name
|
31
33
|
@user_email = user_email
|
32
34
|
@account_id = account_id
|
33
35
|
@budget_name = budget_name
|
36
|
+
@primary_currency = primary_currency
|
34
37
|
@api_key_label = api_key_label
|
35
38
|
end
|
36
39
|
end
|
data/lib/lunchmoney/version.rb
CHANGED
@@ -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
|
@@ -347,6 +371,9 @@ class String
|
|
347
371
|
sig { params(count: T.nilable(T.any(Integer, Symbol)), locale: T.nilable(Symbol)).returns(String) }
|
348
372
|
def pluralize(count = nil, locale = :en); end
|
349
373
|
|
374
|
+
sig { returns(T::Boolean) }
|
375
|
+
def present?; end
|
376
|
+
|
350
377
|
sig { params(patterns: T.any(String, Regexp)).returns(String) }
|
351
378
|
def remove(*patterns); end
|
352
379
|
|
@@ -418,4 +445,8 @@ class ActiveSupport::ErrorReporter
|
|
418
445
|
|
419
446
|
sig { params(error: Exception, handled: T::Boolean, severity: T.nilable(Symbol), context: T::Hash[Symbol, T.untyped], source: T.nilable(String)).void }
|
420
447
|
def report(error, handled: true, severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil)); end
|
448
|
+
|
449
|
+
# @version >= 7.2.0.beta1
|
450
|
+
sig { params(error: T.any(Exception, String), severity: T.nilable(Symbol), context: T::Hash[Symbol, T.untyped], source: T.nilable(String)).void }
|
451
|
+
def unexpected(error, severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil)); end
|
421
452
|
end
|
@@ -0,0 +1,119 @@
|
|
1
|
+
# typed: true
|
2
|
+
|
3
|
+
# DO NOT EDIT MANUALLY
|
4
|
+
# This file was pulled from a central RBI files repository.
|
5
|
+
# Please run `bin/tapioca annotations` to update it.
|
6
|
+
|
7
|
+
module Minitest::Assertions
|
8
|
+
sig { params(test: T.anything, msg: T.anything).returns(TrueClass) }
|
9
|
+
def assert(test, msg = nil); end
|
10
|
+
|
11
|
+
sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) }
|
12
|
+
def assert_empty(obj, msg = nil); end
|
13
|
+
|
14
|
+
sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) }
|
15
|
+
def assert_equal(exp, act, msg = nil); end
|
16
|
+
|
17
|
+
sig { params(exp: T.anything, act: T.anything, delta: Numeric, msg: T.anything).returns(TrueClass) }
|
18
|
+
def assert_in_delta(exp, act, delta = T.unsafe(nil), msg = nil); end
|
19
|
+
|
20
|
+
sig { params(a: T.anything, b: T.anything, epsilon: Numeric, msg: T.anything).returns(TrueClass) }
|
21
|
+
def assert_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = nil); end
|
22
|
+
|
23
|
+
sig { params(collection: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
|
24
|
+
def assert_includes(collection, obj, msg = nil); end
|
25
|
+
|
26
|
+
sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
|
27
|
+
def assert_instance_of(cls, obj, msg = nil); end
|
28
|
+
|
29
|
+
sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
|
30
|
+
def assert_kind_of(cls, obj, msg = nil); end
|
31
|
+
|
32
|
+
sig { params(matcher: T.any(String, Regexp), obj: T.anything, msg: T.anything).returns(MatchData) }
|
33
|
+
def assert_match(matcher, obj, msg = nil); end
|
34
|
+
|
35
|
+
sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) }
|
36
|
+
def assert_nil(obj, msg = nil); end
|
37
|
+
|
38
|
+
sig { params(o1: T.anything, op: T.any(Symbol, String), o2: T.anything, msg: T.anything).returns(TrueClass) }
|
39
|
+
def assert_operator(o1, op, o2 = T.unsafe(nil), msg = nil); end
|
40
|
+
|
41
|
+
sig { params(stdout: T.nilable(T.any(String, Regexp)), stderr: T.nilable(T.any(String, Regexp)), block: T.proc.void).returns(T::Boolean) }
|
42
|
+
def assert_output(stdout = nil, stderr = nil, &block); end
|
43
|
+
|
44
|
+
sig { params(path: T.any(String, Pathname), msg: T.anything).returns(TrueClass) }
|
45
|
+
def assert_path_exists(path, msg = nil); end
|
46
|
+
|
47
|
+
sig { params(block: T.proc.void).returns(TrueClass) }
|
48
|
+
def assert_pattern(&block); end
|
49
|
+
|
50
|
+
sig { params(o1: T.anything, op: T.any(String, Symbol), msg: T.anything).returns(TrueClass) }
|
51
|
+
def assert_predicate(o1, op, msg = nil); end
|
52
|
+
|
53
|
+
sig { params(exp: NilClass, block: T.proc.void).returns(StandardError) }
|
54
|
+
sig { type_parameters(:T).params(exp: T.any(T::Class[T.type_parameter(:T)], Regexp, String), block: T.proc.void).returns(T.type_parameter(:T)) }
|
55
|
+
def assert_raises(*exp, &block); end
|
56
|
+
|
57
|
+
sig { params(obj: T.anything, meth: T.any(String, Symbol), msg: T.anything, include_all: T::Boolean).returns(TrueClass) }
|
58
|
+
def assert_respond_to(obj, meth, msg = nil, include_all: false); end
|
59
|
+
|
60
|
+
sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) }
|
61
|
+
def assert_same(exp, act, msg = nil); end
|
62
|
+
|
63
|
+
sig { params(send_ary: T::Array[T.anything], m: T.anything).returns(T::Boolean) }
|
64
|
+
def assert_send(send_ary, m = nil); end
|
65
|
+
|
66
|
+
sig { params(block: T.proc.void).returns(T::Boolean) }
|
67
|
+
def assert_silent(&block); end
|
68
|
+
|
69
|
+
sig { params(sym: Symbol, msg: T.anything, block: T.proc.void).returns(T.anything) }
|
70
|
+
def assert_throws(sym, msg = nil, &block); end
|
71
|
+
|
72
|
+
sig { params(test: T.anything, msg: T.anything).returns(TrueClass) }
|
73
|
+
def refute(test, msg = nil); end
|
74
|
+
|
75
|
+
sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) }
|
76
|
+
def refute_empty(obj, msg = nil); end
|
77
|
+
|
78
|
+
sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) }
|
79
|
+
def refute_equal(exp, act, msg = nil); end
|
80
|
+
|
81
|
+
sig { params(exp: T.anything, act: T.anything, delta: Numeric, msg: T.anything).returns(TrueClass) }
|
82
|
+
def refute_in_delta(exp, act, delta = T.unsafe(nil), msg = nil); end
|
83
|
+
|
84
|
+
sig { params(a: T.anything, b: T.anything, epsilon: Numeric, msg: T.anything).returns(TrueClass) }
|
85
|
+
def refute_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = nil); end
|
86
|
+
|
87
|
+
sig { params(collection: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
|
88
|
+
def refute_includes(collection, obj, msg = nil); end
|
89
|
+
|
90
|
+
sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
|
91
|
+
def refute_instance_of(cls, obj, msg = nil); end
|
92
|
+
|
93
|
+
sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
|
94
|
+
def refute_kind_of(cls, obj, msg = nil); end
|
95
|
+
|
96
|
+
sig { params(matcher: T.any(String, Regexp), obj: T.anything, msg: T.anything).returns(TrueClass) }
|
97
|
+
def refute_match(matcher, obj, msg = nil); end
|
98
|
+
|
99
|
+
sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) }
|
100
|
+
def refute_nil(obj, msg = nil); end
|
101
|
+
|
102
|
+
sig { params(block: T.proc.void).returns(TrueClass) }
|
103
|
+
def refute_pattern(&block); end
|
104
|
+
|
105
|
+
sig { params(o1: T.anything, op: T.any(Symbol, String), o2: T.anything, msg: T.anything).returns(TrueClass) }
|
106
|
+
def refute_operator(o1, op, o2 = T.unsafe(nil), msg = nil); end
|
107
|
+
|
108
|
+
sig { params(path: T.any(String, Pathname), msg: T.anything).returns(TrueClass) }
|
109
|
+
def refute_path_exists(path, msg = nil); end
|
110
|
+
|
111
|
+
sig { params(o1: T.anything, op: T.any(String, Symbol), msg: T.anything).returns(TrueClass) }
|
112
|
+
def refute_predicate(o1, op, msg = nil); end
|
113
|
+
|
114
|
+
sig { params(obj: T.anything, meth: T.any(String, Symbol), msg: T.anything, include_all: T::Boolean).returns(TrueClass) }
|
115
|
+
def refute_respond_to(obj, meth, msg = nil, include_all: false); end
|
116
|
+
|
117
|
+
sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) }
|
118
|
+
def refute_same(exp, act, msg = nil); end
|
119
|
+
end
|