morty 0.0.1 → 0.1.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 (134) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +12 -0
  3. data/.github/workflows/ci.yml +107 -0
  4. data/.gitignore +17 -3
  5. data/.rubocop.yml +20 -0
  6. data/Appraisals +24 -0
  7. data/Gemfile +28 -1
  8. data/LICENSE +21 -0
  9. data/README.md +37 -7
  10. data/Rakefile +37 -0
  11. data/app/models/morty/account.rb +37 -0
  12. data/app/models/morty/account_type.rb +7 -0
  13. data/app/models/morty/activity.rb +147 -0
  14. data/app/models/morty/activity_type.rb +7 -0
  15. data/app/models/morty/application_record.rb +6 -0
  16. data/app/models/morty/entry.rb +24 -0
  17. data/app/models/morty/entry_type.rb +23 -0
  18. data/app/models/morty/ledger.rb +8 -0
  19. data/config/routes.rb +2 -0
  20. data/config.ru +7 -0
  21. data/cucumber.yml +2 -0
  22. data/db/migrate/20260224063053_create_morty_schema.rb +17 -0
  23. data/db/seeds.rb +18 -0
  24. data/db/sql/create_morty_schema.sql +479 -0
  25. data/features/accountant.feature +47 -0
  26. data/features/adjustment.feature +79 -0
  27. data/features/cancel.feature +130 -0
  28. data/features/daily.feature +42 -0
  29. data/features/default.feature +33 -0
  30. data/features/ledger.feature +57 -0
  31. data/features/retroactive.feature +92 -0
  32. data/features/return.feature +112 -0
  33. data/features/reversal.feature +57 -0
  34. data/features/simulation.feature +128 -0
  35. data/features/support/accountants/adjusting_accountant.rb +34 -0
  36. data/features/support/accountants/daily_accountant.rb +13 -0
  37. data/features/support/accountants/default_accountant.rb +2 -0
  38. data/features/support/accountants/defaulting_accountant.rb +32 -0
  39. data/features/support/accountants/multiple_ledgers_accountant.rb +51 -0
  40. data/features/support/accountants/simulating_accountant.rb +36 -0
  41. data/features/support/accountants/sourceless_accountant.rb +2 -0
  42. data/features/support/accountants/waterfalling_accountant.rb +15 -0
  43. data/features/support/env.rb +17 -0
  44. data/features/waterfall.feature +34 -0
  45. data/gemfiles/rails_7.0.gemfile +30 -0
  46. data/gemfiles/rails_7.0.gemfile.lock +494 -0
  47. data/gemfiles/rails_7.1.gemfile +30 -0
  48. data/gemfiles/rails_7.1.gemfile.lock +543 -0
  49. data/gemfiles/rails_7.2.gemfile +30 -0
  50. data/gemfiles/rails_7.2.gemfile.lock +539 -0
  51. data/gemfiles/rails_8.0.gemfile +30 -0
  52. data/gemfiles/rails_8.0.gemfile.lock +536 -0
  53. data/gemfiles/rails_8.1.gemfile +30 -0
  54. data/gemfiles/rails_8.1.gemfile.lock +538 -0
  55. data/lib/morty/accountant.rb +332 -0
  56. data/lib/morty/adjustment.rb +64 -0
  57. data/lib/morty/book.rb +54 -0
  58. data/lib/morty/context/activity.rb +52 -0
  59. data/lib/morty/context/daily.rb +23 -0
  60. data/lib/morty/context/simulation.rb +26 -0
  61. data/lib/morty/cucumber/helpers.rb +27 -0
  62. data/lib/morty/cucumber/steps.rb +191 -0
  63. data/lib/morty/diff.rb +71 -0
  64. data/lib/morty/dsl.rb +86 -0
  65. data/lib/morty/engine.rb +21 -0
  66. data/lib/morty/error.rb +3 -0
  67. data/lib/morty/event.rb +27 -0
  68. data/lib/morty/list/activity.rb +57 -0
  69. data/lib/morty/rate.rb +59 -0
  70. data/lib/morty/schedule.rb +36 -0
  71. data/lib/morty/seed.rb +60 -0
  72. data/lib/morty/source.rb +19 -0
  73. data/lib/morty/tasks/morty_tasks.rake +4 -0
  74. data/lib/morty/version.rb +1 -1
  75. data/lib/morty.rb +27 -1
  76. data/morty.gemspec +22 -19
  77. data/spec/dummy/Rakefile +6 -0
  78. data/spec/dummy/app/assets/images/.keep +0 -0
  79. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  80. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  81. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  82. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  83. data/spec/dummy/app/jobs/application_job.rb +7 -0
  84. data/spec/dummy/app/models/application_record.rb +3 -0
  85. data/spec/dummy/app/models/concerns/.keep +0 -0
  86. data/spec/dummy/app/views/layouts/application.html.erb +28 -0
  87. data/spec/dummy/app/views/pwa/manifest.json.erb +22 -0
  88. data/spec/dummy/app/views/pwa/service-worker.js +26 -0
  89. data/spec/dummy/bin/ci +6 -0
  90. data/spec/dummy/bin/dev +2 -0
  91. data/spec/dummy/bin/rails +4 -0
  92. data/spec/dummy/bin/rake +4 -0
  93. data/spec/dummy/bin/setup +35 -0
  94. data/spec/dummy/config/application.rb +48 -0
  95. data/spec/dummy/config/boot.rb +5 -0
  96. data/spec/dummy/config/cable.yml +10 -0
  97. data/spec/dummy/config/ci.rb +15 -0
  98. data/spec/dummy/config/database.yml +15 -0
  99. data/spec/dummy/config/environment.rb +5 -0
  100. data/spec/dummy/config/environments/development.rb +47 -0
  101. data/spec/dummy/config/environments/test.rb +53 -0
  102. data/spec/dummy/config/initializers/content_security_policy.rb +29 -0
  103. data/spec/dummy/config/initializers/filter_parameter_logging.rb +8 -0
  104. data/spec/dummy/config/initializers/inflections.rb +16 -0
  105. data/spec/dummy/config/locales/en.yml +31 -0
  106. data/spec/dummy/config/puma.rb +39 -0
  107. data/spec/dummy/config/routes.rb +3 -0
  108. data/spec/dummy/config/storage.yml +27 -0
  109. data/spec/dummy/config.ru +6 -0
  110. data/spec/dummy/db/seeds.rb +52 -0
  111. data/spec/dummy/log/.keep +0 -0
  112. data/spec/dummy/public/400.html +135 -0
  113. data/spec/dummy/public/404.html +135 -0
  114. data/spec/dummy/public/406-unsupported-browser.html +135 -0
  115. data/spec/dummy/public/422.html +135 -0
  116. data/spec/dummy/public/500.html +135 -0
  117. data/spec/dummy/public/icon.png +0 -0
  118. data/spec/dummy/public/icon.svg +3 -0
  119. data/spec/lib/accountant_spec.rb +236 -0
  120. data/spec/lib/book_spec.rb +91 -0
  121. data/spec/lib/diff_spec.rb +102 -0
  122. data/spec/lib/event_spec.rb +53 -0
  123. data/spec/lib/list/activity_spec.rb +117 -0
  124. data/spec/lib/schedule_spec.rb +106 -0
  125. data/spec/lib/source_spec.rb +31 -0
  126. data/spec/models/account_spec.rb +48 -0
  127. data/spec/models/activity_spec.rb +139 -0
  128. data/spec/models/entry_spec.rb +41 -0
  129. data/spec/models/entry_type_spec.rb +43 -0
  130. data/spec/rate_spec.rb +83 -0
  131. data/spec/spec_helper.rb +36 -0
  132. data/spec/support/test_helpers.rb +25 -0
  133. metadata +193 -16
  134. data/LICENSE.txt +0 -22
metadata CHANGED
@@ -1,63 +1,242 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: morty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Peterson
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2014-11-01 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: railties
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '7.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '7.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: activerecord
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '7.0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '7.0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: lookup_by
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: colorize
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
13
68
  - !ruby/object:Gem::Dependency
14
69
  name: bundler
15
70
  requirement: !ruby/object:Gem::Requirement
16
71
  requirements:
17
72
  - - "~>"
18
73
  - !ruby/object:Gem::Version
19
- version: '1.7'
74
+ version: '4.0'
20
75
  type: :development
21
76
  prerelease: false
22
77
  version_requirements: !ruby/object:Gem::Requirement
23
78
  requirements:
24
79
  - - "~>"
25
80
  - !ruby/object:Gem::Version
26
- version: '1.7'
81
+ version: '4.0'
27
82
  - !ruby/object:Gem::Dependency
28
83
  name: rake
29
84
  requirement: !ruby/object:Gem::Requirement
30
85
  requirements:
31
- - - "~>"
86
+ - - ">"
32
87
  - !ruby/object:Gem::Version
33
88
  version: '10.0'
34
89
  type: :development
35
90
  prerelease: false
36
91
  version_requirements: !ruby/object:Gem::Requirement
37
92
  requirements:
38
- - - "~>"
93
+ - - ">"
39
94
  - !ruby/object:Gem::Version
40
95
  version: '10.0'
41
96
  description: ''
42
97
  email:
43
- - erik@spicywombat.com
98
+ - thecompanygardener@gmail.com
44
99
  executables: []
45
100
  extensions: []
46
101
  extra_rdoc_files: []
47
102
  files:
103
+ - ".github/dependabot.yml"
104
+ - ".github/workflows/ci.yml"
48
105
  - ".gitignore"
106
+ - ".rubocop.yml"
107
+ - Appraisals
49
108
  - Gemfile
50
- - LICENSE.txt
109
+ - LICENSE
51
110
  - README.md
52
111
  - Rakefile
112
+ - app/models/morty/account.rb
113
+ - app/models/morty/account_type.rb
114
+ - app/models/morty/activity.rb
115
+ - app/models/morty/activity_type.rb
116
+ - app/models/morty/application_record.rb
117
+ - app/models/morty/entry.rb
118
+ - app/models/morty/entry_type.rb
119
+ - app/models/morty/ledger.rb
120
+ - config.ru
121
+ - config/routes.rb
122
+ - cucumber.yml
123
+ - db/migrate/20260224063053_create_morty_schema.rb
124
+ - db/seeds.rb
125
+ - db/sql/create_morty_schema.sql
126
+ - features/accountant.feature
127
+ - features/adjustment.feature
128
+ - features/cancel.feature
129
+ - features/daily.feature
130
+ - features/default.feature
131
+ - features/ledger.feature
132
+ - features/retroactive.feature
133
+ - features/return.feature
134
+ - features/reversal.feature
135
+ - features/simulation.feature
136
+ - features/support/accountants/adjusting_accountant.rb
137
+ - features/support/accountants/daily_accountant.rb
138
+ - features/support/accountants/default_accountant.rb
139
+ - features/support/accountants/defaulting_accountant.rb
140
+ - features/support/accountants/multiple_ledgers_accountant.rb
141
+ - features/support/accountants/simulating_accountant.rb
142
+ - features/support/accountants/sourceless_accountant.rb
143
+ - features/support/accountants/waterfalling_accountant.rb
144
+ - features/support/env.rb
145
+ - features/waterfall.feature
146
+ - gemfiles/rails_7.0.gemfile
147
+ - gemfiles/rails_7.0.gemfile.lock
148
+ - gemfiles/rails_7.1.gemfile
149
+ - gemfiles/rails_7.1.gemfile.lock
150
+ - gemfiles/rails_7.2.gemfile
151
+ - gemfiles/rails_7.2.gemfile.lock
152
+ - gemfiles/rails_8.0.gemfile
153
+ - gemfiles/rails_8.0.gemfile.lock
154
+ - gemfiles/rails_8.1.gemfile
155
+ - gemfiles/rails_8.1.gemfile.lock
53
156
  - lib/morty.rb
157
+ - lib/morty/accountant.rb
158
+ - lib/morty/adjustment.rb
159
+ - lib/morty/book.rb
160
+ - lib/morty/context/activity.rb
161
+ - lib/morty/context/daily.rb
162
+ - lib/morty/context/simulation.rb
163
+ - lib/morty/cucumber/helpers.rb
164
+ - lib/morty/cucumber/steps.rb
165
+ - lib/morty/diff.rb
166
+ - lib/morty/dsl.rb
167
+ - lib/morty/engine.rb
168
+ - lib/morty/error.rb
169
+ - lib/morty/event.rb
170
+ - lib/morty/list/activity.rb
171
+ - lib/morty/rate.rb
172
+ - lib/morty/schedule.rb
173
+ - lib/morty/seed.rb
174
+ - lib/morty/source.rb
175
+ - lib/morty/tasks/morty_tasks.rake
54
176
  - lib/morty/version.rb
55
177
  - morty.gemspec
56
- homepage: ''
178
+ - spec/dummy/Rakefile
179
+ - spec/dummy/app/assets/images/.keep
180
+ - spec/dummy/app/assets/stylesheets/application.css
181
+ - spec/dummy/app/controllers/application_controller.rb
182
+ - spec/dummy/app/controllers/concerns/.keep
183
+ - spec/dummy/app/helpers/application_helper.rb
184
+ - spec/dummy/app/jobs/application_job.rb
185
+ - spec/dummy/app/models/application_record.rb
186
+ - spec/dummy/app/models/concerns/.keep
187
+ - spec/dummy/app/views/layouts/application.html.erb
188
+ - spec/dummy/app/views/pwa/manifest.json.erb
189
+ - spec/dummy/app/views/pwa/service-worker.js
190
+ - spec/dummy/bin/ci
191
+ - spec/dummy/bin/dev
192
+ - spec/dummy/bin/rails
193
+ - spec/dummy/bin/rake
194
+ - spec/dummy/bin/setup
195
+ - spec/dummy/config.ru
196
+ - spec/dummy/config/application.rb
197
+ - spec/dummy/config/boot.rb
198
+ - spec/dummy/config/cable.yml
199
+ - spec/dummy/config/ci.rb
200
+ - spec/dummy/config/database.yml
201
+ - spec/dummy/config/environment.rb
202
+ - spec/dummy/config/environments/development.rb
203
+ - spec/dummy/config/environments/test.rb
204
+ - spec/dummy/config/initializers/content_security_policy.rb
205
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
206
+ - spec/dummy/config/initializers/inflections.rb
207
+ - spec/dummy/config/locales/en.yml
208
+ - spec/dummy/config/puma.rb
209
+ - spec/dummy/config/routes.rb
210
+ - spec/dummy/config/storage.yml
211
+ - spec/dummy/db/seeds.rb
212
+ - spec/dummy/log/.keep
213
+ - spec/dummy/public/400.html
214
+ - spec/dummy/public/404.html
215
+ - spec/dummy/public/406-unsupported-browser.html
216
+ - spec/dummy/public/422.html
217
+ - spec/dummy/public/500.html
218
+ - spec/dummy/public/icon.png
219
+ - spec/dummy/public/icon.svg
220
+ - spec/lib/accountant_spec.rb
221
+ - spec/lib/book_spec.rb
222
+ - spec/lib/diff_spec.rb
223
+ - spec/lib/event_spec.rb
224
+ - spec/lib/list/activity_spec.rb
225
+ - spec/lib/schedule_spec.rb
226
+ - spec/lib/source_spec.rb
227
+ - spec/models/account_spec.rb
228
+ - spec/models/activity_spec.rb
229
+ - spec/models/entry_spec.rb
230
+ - spec/models/entry_type_spec.rb
231
+ - spec/rate_spec.rb
232
+ - spec/spec_helper.rb
233
+ - spec/support/test_helpers.rb
234
+ homepage: https://github.com/companygardener/morty
57
235
  licenses:
58
236
  - MIT
59
- metadata: {}
60
- post_install_message:
237
+ metadata:
238
+ homepage_uri: https://github.com/companygardener/morty
239
+ source_code_uri: https://github.com/companygardener/morty
61
240
  rdoc_options: []
62
241
  require_paths:
63
242
  - lib
@@ -72,9 +251,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
251
  - !ruby/object:Gem::Version
73
252
  version: '0'
74
253
  requirements: []
75
- rubyforge_project:
76
- rubygems_version: 2.2.2
77
- signing_key:
254
+ rubygems_version: 4.0.9
78
255
  specification_version: 4
79
- summary: Calculate amortization schedules.
256
+ summary: Morty is an accountant
80
257
  test_files: []
data/LICENSE.txt DELETED
@@ -1,22 +0,0 @@
1
- Copyright (c) 2014 Erik Peterson
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.