lunchmoney 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.github/dependabot.yml +18 -0
  4. data/.github/workflows/build_and_publish_yard_docs.yml +47 -0
  5. data/.github/workflows/ci.yml +58 -0
  6. data/.github/workflows/dependabot-rbi-updater.yml +43 -0
  7. data/.github/workflows/publish_gem.yml +31 -0
  8. data/.gitignore +62 -0
  9. data/.rubocop.yml +45 -0
  10. data/.ruby-version +1 -0
  11. data/.toys/.toys.rb +10 -0
  12. data/.toys/ci.rb +22 -0
  13. data/.toys/rbi.rb +60 -0
  14. data/.toys/rubocop.rb +10 -0
  15. data/.toys/spoom.rb +15 -0
  16. data/.toys/typecheck.rb +5 -0
  17. data/.yardopts +2 -0
  18. data/Appraisals +22 -0
  19. data/Gemfile +25 -0
  20. data/Gemfile.lock +174 -0
  21. data/LICENSE +21 -0
  22. data/README.md +57 -0
  23. data/bin/console +16 -0
  24. data/bin/rubocop +27 -0
  25. data/bin/setup +8 -0
  26. data/bin/spoom +27 -0
  27. data/bin/srb +27 -0
  28. data/bin/tapioca +27 -0
  29. data/bin/toys +27 -0
  30. data/bin/yard +27 -0
  31. data/lib/lunchmoney/api.rb +147 -0
  32. data/lib/lunchmoney/api_call.rb +109 -0
  33. data/lib/lunchmoney/assets/asset.rb +89 -0
  34. data/lib/lunchmoney/assets/asset_calls.rb +96 -0
  35. data/lib/lunchmoney/budget/budget.rb +74 -0
  36. data/lib/lunchmoney/budget/budget_calls.rb +82 -0
  37. data/lib/lunchmoney/budget/config.rb +38 -0
  38. data/lib/lunchmoney/budget/data.rb +42 -0
  39. data/lib/lunchmoney/categories/category/category.rb +52 -0
  40. data/lib/lunchmoney/categories/category/child_category.rb +42 -0
  41. data/lib/lunchmoney/categories/category_calls.rb +195 -0
  42. data/lib/lunchmoney/configuration.rb +26 -0
  43. data/lib/lunchmoney/crypto/crypto/crypto.rb +43 -0
  44. data/lib/lunchmoney/crypto/crypto/crypto_base.rb +65 -0
  45. data/lib/lunchmoney/crypto/crypto_calls.rb +49 -0
  46. data/lib/lunchmoney/data_object.rb +25 -0
  47. data/lib/lunchmoney/errors.rb +19 -0
  48. data/lib/lunchmoney/exceptions.rb +19 -0
  49. data/lib/lunchmoney/plaid_accounts/plaid_account.rb +73 -0
  50. data/lib/lunchmoney/plaid_accounts/plaid_account_calls.rb +38 -0
  51. data/lib/lunchmoney/recurring_expenses/recurring_expense/recurring_expense.rb +65 -0
  52. data/lib/lunchmoney/recurring_expenses/recurring_expense/recurring_expense_base.rb +29 -0
  53. data/lib/lunchmoney/recurring_expenses/recurring_expense_calls.rb +28 -0
  54. data/lib/lunchmoney/tags/tag/tag.rb +20 -0
  55. data/lib/lunchmoney/tags/tag/tag_base.rb +21 -0
  56. data/lib/lunchmoney/tags/tag_calls.rb +20 -0
  57. data/lib/lunchmoney/transactions/transaction/child_transaction.rb +31 -0
  58. data/lib/lunchmoney/transactions/transaction/split.rb +24 -0
  59. data/lib/lunchmoney/transactions/transaction/transaction.rb +156 -0
  60. data/lib/lunchmoney/transactions/transaction/transaction_base.rb +52 -0
  61. data/lib/lunchmoney/transactions/transaction/transaction_modification_base.rb +30 -0
  62. data/lib/lunchmoney/transactions/transaction/update_transaction.rb +43 -0
  63. data/lib/lunchmoney/transactions/transaction_calls.rb +218 -0
  64. data/lib/lunchmoney/user/user.rb +36 -0
  65. data/lib/lunchmoney/user/user_calls.rb +19 -0
  66. data/lib/lunchmoney/validators.rb +43 -0
  67. data/lib/lunchmoney/version.rb +7 -0
  68. data/lib/lunchmoney.rb +54 -0
  69. data/lunchmoney.gemspec +34 -0
  70. data/sorbet/config +5 -0
  71. data/sorbet/rbi/annotations/.gitattributes +1 -0
  72. data/sorbet/rbi/annotations/activesupport.rbi +410 -0
  73. data/sorbet/rbi/annotations/faraday.rbi +17 -0
  74. data/sorbet/rbi/annotations/mocha.rbi +34 -0
  75. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  76. data/sorbet/rbi/annotations/webmock.rbi +9 -0
  77. data/sorbet/rbi/dsl/.gitattributes +1 -0
  78. data/sorbet/rbi/dsl/active_support/callbacks.rbi +22 -0
  79. data/sorbet/rbi/gems/.gitattributes +1 -0
  80. data/sorbet/rbi/gems/activesupport@7.1.3.rbi +18004 -0
  81. data/sorbet/rbi/gems/addressable@2.8.6.rbi +1993 -0
  82. data/sorbet/rbi/gems/appraisal@2.5.0.rbi +621 -0
  83. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  84. data/sorbet/rbi/gems/base64@0.2.0.rbi +508 -0
  85. data/sorbet/rbi/gems/bigdecimal@3.1.6.rbi +77 -0
  86. data/sorbet/rbi/gems/coderay@1.1.3.rbi +3426 -0
  87. data/sorbet/rbi/gems/concurrent-ruby@1.2.3.rbi +11590 -0
  88. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +8 -0
  89. data/sorbet/rbi/gems/crack@0.4.5.rbi +144 -0
  90. data/sorbet/rbi/gems/dotenv@2.8.1.rbi +234 -0
  91. data/sorbet/rbi/gems/drb@2.2.0.rbi +1346 -0
  92. data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
  93. data/sorbet/rbi/gems/faraday-net_http@3.1.0.rbi +146 -0
  94. data/sorbet/rbi/gems/faraday@2.9.0.rbi +2911 -0
  95. data/sorbet/rbi/gems/hashdiff@1.1.0.rbi +352 -0
  96. data/sorbet/rbi/gems/i18n@1.14.1.rbi +2325 -0
  97. data/sorbet/rbi/gems/json@2.7.1.rbi +1561 -0
  98. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  99. data/sorbet/rbi/gems/method_source@1.0.0.rbi +272 -0
  100. data/sorbet/rbi/gems/minitest@5.21.2.rbi +2197 -0
  101. data/sorbet/rbi/gems/mocha@2.1.0.rbi +3934 -0
  102. data/sorbet/rbi/gems/mutex_m@0.2.0.rbi +93 -0
  103. data/sorbet/rbi/gems/net-http@0.4.1.rbi +4068 -0
  104. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  105. data/sorbet/rbi/gems/parallel@1.24.0.rbi +280 -0
  106. data/sorbet/rbi/gems/parser@3.3.0.5.rbi +5472 -0
  107. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +951 -0
  108. data/sorbet/rbi/gems/prism@0.19.0.rbi +29883 -0
  109. data/sorbet/rbi/gems/pry-sorbet@0.2.1.rbi +966 -0
  110. data/sorbet/rbi/gems/pry@0.14.2.rbi +10077 -0
  111. data/sorbet/rbi/gems/public_suffix@5.0.4.rbi +935 -0
  112. data/sorbet/rbi/gems/racc@1.7.3.rbi +161 -0
  113. data/sorbet/rbi/gems/rack@3.0.8.rbi +5183 -0
  114. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
  115. data/sorbet/rbi/gems/rake@13.1.0.rbi +3027 -0
  116. data/sorbet/rbi/gems/rbi@0.1.6.rbi +2922 -0
  117. data/sorbet/rbi/gems/regexp_parser@2.9.0.rbi +3771 -0
  118. data/sorbet/rbi/gems/rexml@3.2.6.rbi +4781 -0
  119. data/sorbet/rbi/gems/rubocop-ast@1.30.0.rbi +7117 -0
  120. data/sorbet/rbi/gems/rubocop-minitest@0.34.5.rbi +2576 -0
  121. data/sorbet/rbi/gems/rubocop-rails@2.23.1.rbi +9175 -0
  122. data/sorbet/rbi/gems/rubocop-shopify@2.14.0.rbi +8 -0
  123. data/sorbet/rbi/gems/rubocop-sorbet@0.7.6.rbi +1510 -0
  124. data/sorbet/rbi/gems/rubocop@1.60.1.rbi +57356 -0
  125. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  126. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +8 -0
  127. data/sorbet/rbi/gems/spoom@1.2.4.rbi +3777 -0
  128. data/sorbet/rbi/gems/syntax_tree@6.2.0.rbi +23136 -0
  129. data/sorbet/rbi/gems/tapioca@0.12.0.rbi +3506 -0
  130. data/sorbet/rbi/gems/thor@1.3.0.rbi +4312 -0
  131. data/sorbet/rbi/gems/toys-core@0.15.4.rbi +9462 -0
  132. data/sorbet/rbi/gems/toys@0.15.4.rbi +243 -0
  133. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5917 -0
  134. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +65 -0
  135. data/sorbet/rbi/gems/uri@0.13.0.rbi +2327 -0
  136. data/sorbet/rbi/gems/vcr@6.2.0.rbi +3036 -0
  137. data/sorbet/rbi/gems/webmock@3.19.1.rbi +1768 -0
  138. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +428 -0
  139. data/sorbet/rbi/gems/yard@0.9.34.rbi +18084 -0
  140. data/sorbet/shims/module.rbi +6 -0
  141. data/sorbet/tapioca/require.rb +10 -0
  142. metadata +228 -0
@@ -0,0 +1,243 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `toys` gem.
5
+ # Please instead update this file by running `bin/tapioca gem toys`.
6
+
7
+ # Toys is a configurable command line tool. Write commands in config files
8
+ # using a simple DSL, and Toys will provide the command line executable and
9
+ # take care of all the details such as argument parsing, online help, and error
10
+ # reporting. Toys is designed for software developers, IT professionals, and
11
+ # other power users who want to write and organize scripts to automate their
12
+ # workflows. It can also be used as a Rake replacement, providing a more
13
+ # natural command line interface for your project's build tasks.
14
+ #
15
+ # This set of documentation includes classes from both Toys-Core, the
16
+ # underlying command line framework, and the Toys executable itself. Most of
17
+ # the actual classes you will likely need to look up are from Toys-Core.
18
+ #
19
+ # ## Common starting points
20
+ #
21
+ # * For information on the DSL used to write tools, start with
22
+ # {Toys::DSL::Tool}.
23
+ # * The base class for tool runtime (i.e. that defines the basic methods
24
+ # available to a tool's implementation) is {Toys::Context}.
25
+ # * For information on writing mixins, see {Toys::Mixin}.
26
+ # * For information on writing templates, see {Toys::Template}.
27
+ # * For information on writing acceptors, see {Toys::Acceptor}.
28
+ # * For information on writing custom shell completions, see {Toys::Completion}.
29
+ # * Standard mixins are defined under the {Toys::StandardMixins} module.
30
+ # * Various utilities are defined under {Toys::Utils}. Some of these serve as
31
+ # the implementations of corresponding mixins.
32
+ #
33
+ # source://toys//lib/toys/version.rb#3
34
+ module Toys
35
+ class << self
36
+ # source://toys-core/0.15.4/lib/toys/dsl/base.rb#28
37
+ def Tool(*args, name: T.unsafe(nil), base: T.unsafe(nil)); end
38
+
39
+ # source://toys-core/0.15.4/lib/toys-core.rb#114
40
+ def executable_path; end
41
+
42
+ # source://toys-core/0.15.4/lib/toys-core.rb#114
43
+ def executable_path=(_arg0); end
44
+ end
45
+ end
46
+
47
+ # Path to the Toys executable.
48
+ #
49
+ # @return [String] Absolute path to the executable
50
+ # @return [nil] if the Toys executable is not running.
51
+ #
52
+ # source://toys//lib/toys.rb#59
53
+ Toys::EXECUTABLE_PATH = T.let(T.unsafe(nil), String)
54
+
55
+ # @private
56
+ #
57
+ # source://toys//lib/toys.rb#64
58
+ Toys::LIB_PATH = T.let(T.unsafe(nil), String)
59
+
60
+ # Subclass of `Toys::CLI` configured for the behavior of the standard Toys
61
+ # executable. Specifically, this subclass:
62
+ #
63
+ # * Configures the standard names of files and directories, such as the
64
+ # `.toys.rb` file for an "index" tool, and the `.data` and `.lib` directory
65
+ # names.
66
+ # * Configures default descriptions for the root tool.
67
+ # * Configures a default error handler and logger that provide ANSI-colored
68
+ # formatted output.
69
+ # * Configures a set of middleware that implement online help, verbosity
70
+ # flags, and other features.
71
+ # * Provides a set of standard templates for typical project build and
72
+ # maintenance scripts (suh as clean, test, and rubocop).
73
+ # * Finds tool definitions in the standard Toys search path.
74
+ #
75
+ # source://toys//lib/toys/standard_cli.rb#20
76
+ class Toys::StandardCLI < ::Toys::CLI
77
+ # Create a standard CLI, configured with the appropriate paths and
78
+ # middleware.
79
+ #
80
+ # @param custom_paths [String, Array<String>] Custom paths to use. If set,
81
+ # the CLI uses only the given paths. If not, the CLI will search for
82
+ # paths from the current directory and global paths.
83
+ # @param include_builtins [boolean] Add the builtin tools. Default is true.
84
+ # @param cur_dir [String, nil] Starting search directory for configs.
85
+ # Defaults to the current working directory.
86
+ # @return [StandardCLI] a new instance of StandardCLI
87
+ #
88
+ # source://toys//lib/toys/standard_cli.rb#115
89
+ def initialize(custom_paths: T.unsafe(nil), include_builtins: T.unsafe(nil), cur_dir: T.unsafe(nil)); end
90
+
91
+ private
92
+
93
+ # Add paths for builtin tools
94
+ #
95
+ # source://toys//lib/toys/standard_cli.rb#147
96
+ def add_builtins; end
97
+
98
+ # Add paths for the given current directory and its ancestors, plus the
99
+ # global paths.
100
+ #
101
+ # @param cur_dir [String] The starting directory path, or nil to use the
102
+ # current directory
103
+ # @return [self]
104
+ #
105
+ # source://toys//lib/toys/standard_cli.rb#161
106
+ def add_current_directory_paths(cur_dir); end
107
+
108
+ # Returns the default set of global config directories.
109
+ #
110
+ # @return [Array<String>]
111
+ #
112
+ # source://toys//lib/toys/standard_cli.rb#194
113
+ def default_global_dirs; end
114
+
115
+ # Returns the middleware for the standard Toys CLI.
116
+ #
117
+ # @return [Array]
118
+ #
119
+ # source://toys//lib/toys/standard_cli.rb#209
120
+ def default_middleware_stack; end
121
+
122
+ # Returns a ModuleLookup for the default templates.
123
+ #
124
+ # @return [Toys::ModuleLookup]
125
+ #
126
+ # source://toys//lib/toys/standard_cli.rb#240
127
+ def default_template_lookup; end
128
+
129
+ # Step out of any toys dir.
130
+ #
131
+ # @param dir [String] The starting path
132
+ # @param toys_dir_name [String] The name of the toys directory to look for
133
+ # @return [String] The final directory path
134
+ #
135
+ # source://toys//lib/toys/standard_cli.rb#176
136
+ def skip_toys_dir(dir, toys_dir_name); end
137
+ end
138
+
139
+ # Standard toys configuration directory name.
140
+ #
141
+ # @return [String]
142
+ #
143
+ # source://toys//lib/toys/standard_cli.rb#25
144
+ Toys::StandardCLI::CONFIG_DIR_NAME = T.let(T.unsafe(nil), String)
145
+
146
+ # Standard toys configuration file name.
147
+ #
148
+ # @return [String]
149
+ #
150
+ # source://toys//lib/toys/standard_cli.rb#31
151
+ Toys::StandardCLI::CONFIG_FILE_NAME = T.let(T.unsafe(nil), String)
152
+
153
+ # Standard data directory name in a toys configuration.
154
+ #
155
+ # @return [String]
156
+ #
157
+ # source://toys//lib/toys/standard_cli.rb#55
158
+ Toys::StandardCLI::DATA_DIR_NAME = T.let(T.unsafe(nil), String)
159
+
160
+ # Short description for the standard root tool.
161
+ #
162
+ # @return [String]
163
+ #
164
+ # source://toys//lib/toys/standard_cli.rb#79
165
+ Toys::StandardCLI::DEFAULT_ROOT_DESC = T.let(T.unsafe(nil), String)
166
+
167
+ # Help text for the standard root tool.
168
+ #
169
+ # @return [String]
170
+ #
171
+ # source://toys//lib/toys/standard_cli.rb#85
172
+ Toys::StandardCLI::DEFAULT_ROOT_LONG_DESC = T.let(T.unsafe(nil), String)
173
+
174
+ # Short description for the version flag.
175
+ #
176
+ # @return [String]
177
+ #
178
+ # source://toys//lib/toys/standard_cli.rb#96
179
+ Toys::StandardCLI::DEFAULT_VERSION_FLAG_DESC = T.let(T.unsafe(nil), String)
180
+
181
+ # Name of the standard toys executable.
182
+ #
183
+ # @return [String]
184
+ #
185
+ # source://toys//lib/toys/standard_cli.rb#67
186
+ Toys::StandardCLI::EXECUTABLE_NAME = T.let(T.unsafe(nil), String)
187
+
188
+ # Delimiter characters recognized.
189
+ #
190
+ # @return [String]
191
+ #
192
+ # source://toys//lib/toys/standard_cli.rb#73
193
+ Toys::StandardCLI::EXTRA_DELIMITERS = T.let(T.unsafe(nil), String)
194
+
195
+ # Standard index file name in a toys configuration.
196
+ #
197
+ # @return [String]
198
+ #
199
+ # source://toys//lib/toys/standard_cli.rb#37
200
+ Toys::StandardCLI::INDEX_FILE_NAME = T.let(T.unsafe(nil), String)
201
+
202
+ # Standard lib directory name in a toys configuration.
203
+ #
204
+ # @return [String]
205
+ #
206
+ # source://toys//lib/toys/standard_cli.rb#61
207
+ Toys::StandardCLI::LIB_DIR_NAME = T.let(T.unsafe(nil), String)
208
+
209
+ # Standard preload directory name in a toys configuration.
210
+ #
211
+ # @return [String]
212
+ #
213
+ # source://toys//lib/toys/standard_cli.rb#43
214
+ Toys::StandardCLI::PRELOAD_DIR_NAME = T.let(T.unsafe(nil), String)
215
+
216
+ # Standard preload file name in a toys configuration.
217
+ #
218
+ # @return [String]
219
+ #
220
+ # source://toys//lib/toys/standard_cli.rb#49
221
+ Toys::StandardCLI::PRELOAD_FILE_NAME = T.let(T.unsafe(nil), String)
222
+
223
+ # Name of the toys path environment variable.
224
+ #
225
+ # @return [String]
226
+ #
227
+ # source://toys//lib/toys/standard_cli.rb#102
228
+ Toys::StandardCLI::TOYS_PATH_ENV = T.let(T.unsafe(nil), String)
229
+
230
+ # Namespace for standard template classes.
231
+ #
232
+ # These templates are provided by Toys and can be expanded by name by passing
233
+ # a symbol to {Toys::DSL::Tool#expand}.
234
+ #
235
+ # source://toys//lib/toys.rb#72
236
+ module Toys::Templates; end
237
+
238
+ # Current version of the Toys command line executable.
239
+ #
240
+ # @return [String]
241
+ #
242
+ # source://toys//lib/toys/version.rb#8
243
+ Toys::VERSION = T.let(T.unsafe(nil), String)