lunchmoney 0.10.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 (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)