servus 0.1.3 → 0.1.5

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 (139) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/commands/check-docs.md +1 -0
  3. data/.claude/commands/consistency-check.md +1 -0
  4. data/.claude/commands/fine-tooth-comb.md +1 -0
  5. data/.claude/commands/red-green-refactor.md +5 -0
  6. data/.claude/settings.json +15 -0
  7. data/.rubocop.yml +18 -2
  8. data/.yardopts +6 -0
  9. data/CHANGELOG.md +47 -0
  10. data/CLAUDE.md +10 -0
  11. data/IDEAS.md +5 -0
  12. data/READme.md +300 -47
  13. data/Rakefile +33 -0
  14. data/builds/servus-0.1.3.gem +0 -0
  15. data/builds/servus-0.1.4.gem +0 -0
  16. data/builds/servus-0.1.5.gem +0 -0
  17. data/docs/core/1_overview.md +77 -0
  18. data/docs/core/2_architecture.md +120 -0
  19. data/docs/core/3_service_objects.md +121 -0
  20. data/docs/current_focus.md +569 -0
  21. data/docs/features/1_schema_validation.md +119 -0
  22. data/docs/features/2_error_handling.md +121 -0
  23. data/docs/features/3_async_execution.md +81 -0
  24. data/docs/features/4_logging.md +64 -0
  25. data/docs/features/5_event_bus.md +244 -0
  26. data/docs/guides/1_common_patterns.md +90 -0
  27. data/docs/guides/2_migration_guide.md +175 -0
  28. data/docs/integration/1_configuration.md +104 -0
  29. data/docs/integration/2_testing.md +287 -0
  30. data/docs/integration/3_rails_integration.md +99 -0
  31. data/docs/yard/Servus/Base.html +1645 -0
  32. data/docs/yard/Servus/Config.html +582 -0
  33. data/docs/yard/Servus/Extensions/Async/Call.html +400 -0
  34. data/docs/yard/Servus/Extensions/Async/Errors/AsyncError.html +140 -0
  35. data/docs/yard/Servus/Extensions/Async/Errors/JobEnqueueError.html +154 -0
  36. data/docs/yard/Servus/Extensions/Async/Errors/ServiceNotFoundError.html +154 -0
  37. data/docs/yard/Servus/Extensions/Async/Errors.html +128 -0
  38. data/docs/yard/Servus/Extensions/Async/Ext.html +119 -0
  39. data/docs/yard/Servus/Extensions/Async/Job.html +310 -0
  40. data/docs/yard/Servus/Extensions/Async.html +141 -0
  41. data/docs/yard/Servus/Extensions.html +117 -0
  42. data/docs/yard/Servus/Generators/ServiceGenerator.html +261 -0
  43. data/docs/yard/Servus/Generators.html +115 -0
  44. data/docs/yard/Servus/Helpers/ControllerHelpers.html +457 -0
  45. data/docs/yard/Servus/Helpers.html +115 -0
  46. data/docs/yard/Servus/Railtie.html +134 -0
  47. data/docs/yard/Servus/Support/Errors/AuthenticationError.html +287 -0
  48. data/docs/yard/Servus/Support/Errors/BadRequestError.html +283 -0
  49. data/docs/yard/Servus/Support/Errors/ForbiddenError.html +284 -0
  50. data/docs/yard/Servus/Support/Errors/InternalServerError.html +283 -0
  51. data/docs/yard/Servus/Support/Errors/NotFoundError.html +284 -0
  52. data/docs/yard/Servus/Support/Errors/ServiceError.html +489 -0
  53. data/docs/yard/Servus/Support/Errors/ServiceUnavailableError.html +290 -0
  54. data/docs/yard/Servus/Support/Errors/UnauthorizedError.html +200 -0
  55. data/docs/yard/Servus/Support/Errors/UnprocessableEntityError.html +288 -0
  56. data/docs/yard/Servus/Support/Errors/ValidationError.html +200 -0
  57. data/docs/yard/Servus/Support/Errors.html +140 -0
  58. data/docs/yard/Servus/Support/Logger.html +856 -0
  59. data/docs/yard/Servus/Support/Rescuer/BlockContext.html +585 -0
  60. data/docs/yard/Servus/Support/Rescuer/CallOverride.html +257 -0
  61. data/docs/yard/Servus/Support/Rescuer/ClassMethods.html +343 -0
  62. data/docs/yard/Servus/Support/Rescuer.html +267 -0
  63. data/docs/yard/Servus/Support/Response.html +574 -0
  64. data/docs/yard/Servus/Support/Validator.html +1150 -0
  65. data/docs/yard/Servus/Support.html +119 -0
  66. data/docs/yard/Servus/Testing/ExampleBuilders.html +523 -0
  67. data/docs/yard/Servus/Testing/ExampleExtractor.html +578 -0
  68. data/docs/yard/Servus/Testing.html +142 -0
  69. data/docs/yard/Servus.html +343 -0
  70. data/docs/yard/_index.html +535 -0
  71. data/docs/yard/class_list.html +54 -0
  72. data/docs/yard/css/common.css +1 -0
  73. data/docs/yard/css/full_list.css +58 -0
  74. data/docs/yard/css/style.css +503 -0
  75. data/docs/yard/file.1_common_patterns.html +154 -0
  76. data/docs/yard/file.1_configuration.html +115 -0
  77. data/docs/yard/file.1_overview.html +142 -0
  78. data/docs/yard/file.1_schema_validation.html +188 -0
  79. data/docs/yard/file.2_architecture.html +157 -0
  80. data/docs/yard/file.2_error_handling.html +190 -0
  81. data/docs/yard/file.2_migration_guide.html +242 -0
  82. data/docs/yard/file.2_testing.html +227 -0
  83. data/docs/yard/file.3_async_execution.html +145 -0
  84. data/docs/yard/file.3_rails_integration.html +160 -0
  85. data/docs/yard/file.3_service_objects.html +191 -0
  86. data/docs/yard/file.4_logging.html +135 -0
  87. data/docs/yard/file.ErrorHandling.html +190 -0
  88. data/docs/yard/file.READme.html +674 -0
  89. data/docs/yard/file.architecture.html +157 -0
  90. data/docs/yard/file.async_execution.html +145 -0
  91. data/docs/yard/file.common_patterns.html +154 -0
  92. data/docs/yard/file.configuration.html +115 -0
  93. data/docs/yard/file.error_handling.html +190 -0
  94. data/docs/yard/file.logging.html +135 -0
  95. data/docs/yard/file.migration_guide.html +242 -0
  96. data/docs/yard/file.overview.html +142 -0
  97. data/docs/yard/file.rails_integration.html +160 -0
  98. data/docs/yard/file.schema_validation.html +188 -0
  99. data/docs/yard/file.service_objects.html +191 -0
  100. data/docs/yard/file.testing.html +227 -0
  101. data/docs/yard/file_list.html +119 -0
  102. data/docs/yard/frames.html +22 -0
  103. data/docs/yard/index.html +674 -0
  104. data/docs/yard/js/app.js +344 -0
  105. data/docs/yard/js/full_list.js +242 -0
  106. data/docs/yard/js/jquery.js +4 -0
  107. data/docs/yard/method_list.html +542 -0
  108. data/docs/yard/top-level-namespace.html +110 -0
  109. data/lib/generators/servus/event_handler/event_handler_generator.rb +59 -0
  110. data/lib/generators/servus/event_handler/templates/handler.rb.erb +86 -0
  111. data/lib/generators/servus/event_handler/templates/handler_spec.rb.erb +48 -0
  112. data/lib/generators/servus/service/service_generator.rb +68 -1
  113. data/lib/generators/servus/service/templates/arguments.json.erb +19 -10
  114. data/lib/generators/servus/service/templates/result.json.erb +8 -2
  115. data/lib/generators/servus/service/templates/service.rb.erb +102 -5
  116. data/lib/generators/servus/service/templates/service_spec.rb.erb +67 -6
  117. data/lib/servus/base.rb +275 -58
  118. data/lib/servus/config.rb +83 -17
  119. data/lib/servus/event_handler.rb +275 -0
  120. data/lib/servus/events/bus.rb +137 -0
  121. data/lib/servus/events/emitter.rb +162 -0
  122. data/lib/servus/events/errors.rb +10 -0
  123. data/lib/servus/extensions/async/call.rb +50 -18
  124. data/lib/servus/extensions/async/errors.rb +23 -3
  125. data/lib/servus/extensions/async/ext.rb +10 -2
  126. data/lib/servus/extensions/async/job.rb +30 -9
  127. data/lib/servus/helpers/controller_helpers.rb +73 -37
  128. data/lib/servus/railtie.rb +16 -0
  129. data/lib/servus/support/errors.rb +135 -45
  130. data/lib/servus/support/rescuer.rb +189 -36
  131. data/lib/servus/support/response.rb +49 -7
  132. data/lib/servus/support/validator.rb +147 -19
  133. data/lib/servus/testing/example_builders.rb +133 -0
  134. data/lib/servus/testing/example_extractor.rb +309 -0
  135. data/lib/servus/testing/matchers.rb +88 -0
  136. data/lib/servus/testing.rb +19 -0
  137. data/lib/servus/version.rb +1 -1
  138. data/lib/servus.rb +6 -0
  139. metadata +135 -19
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: servus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Scholl
@@ -13,74 +13,182 @@ dependencies:
13
13
  name: active_model_serializers
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - ">="
16
+ - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '0'
18
+ version: 0.10.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
- - - ">="
23
+ - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '0'
25
+ version: 0.10.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: activesupport
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - ">="
30
+ - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '0'
32
+ version: '8.0'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
37
+ - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0'
39
+ version: '8.0'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: json-schema
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - ">="
44
+ - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0'
46
+ version: '5'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ">="
51
+ - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0'
53
+ version: '5'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: actionpack
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ">="
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0'
60
+ version: '8.0'
61
61
  type: :development
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - ">="
65
+ - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '0'
68
- description: A gem for managing service objects.
67
+ version: '8.0'
68
+ description: Servus is a Ruby gem that provides a structured way to create and manage
69
+ service objects, promoting clean code architecture and separation of concerns in
70
+ your applications.
69
71
  email:
70
72
  - sebscholl@gmail.com
71
73
  executables: []
72
74
  extensions: []
73
75
  extra_rdoc_files: []
74
76
  files:
77
+ - ".claude/commands/check-docs.md"
78
+ - ".claude/commands/consistency-check.md"
79
+ - ".claude/commands/fine-tooth-comb.md"
80
+ - ".claude/commands/red-green-refactor.md"
81
+ - ".claude/settings.json"
75
82
  - ".rspec"
76
83
  - ".rubocop.yml"
84
+ - ".yardopts"
77
85
  - CHANGELOG.md
86
+ - CLAUDE.md
87
+ - IDEAS.md
78
88
  - LICENSE.txt
79
89
  - READme.md
80
90
  - Rakefile
81
91
  - builds/servus-0.0.1.gem
82
92
  - builds/servus-0.1.1.gem
83
93
  - builds/servus-0.1.2.gem
94
+ - builds/servus-0.1.3.gem
95
+ - builds/servus-0.1.4.gem
96
+ - builds/servus-0.1.5.gem
97
+ - docs/core/1_overview.md
98
+ - docs/core/2_architecture.md
99
+ - docs/core/3_service_objects.md
100
+ - docs/current_focus.md
101
+ - docs/features/1_schema_validation.md
102
+ - docs/features/2_error_handling.md
103
+ - docs/features/3_async_execution.md
104
+ - docs/features/4_logging.md
105
+ - docs/features/5_event_bus.md
106
+ - docs/guides/1_common_patterns.md
107
+ - docs/guides/2_migration_guide.md
108
+ - docs/integration/1_configuration.md
109
+ - docs/integration/2_testing.md
110
+ - docs/integration/3_rails_integration.md
111
+ - docs/yard/Servus.html
112
+ - docs/yard/Servus/Base.html
113
+ - docs/yard/Servus/Config.html
114
+ - docs/yard/Servus/Extensions.html
115
+ - docs/yard/Servus/Extensions/Async.html
116
+ - docs/yard/Servus/Extensions/Async/Call.html
117
+ - docs/yard/Servus/Extensions/Async/Errors.html
118
+ - docs/yard/Servus/Extensions/Async/Errors/AsyncError.html
119
+ - docs/yard/Servus/Extensions/Async/Errors/JobEnqueueError.html
120
+ - docs/yard/Servus/Extensions/Async/Errors/ServiceNotFoundError.html
121
+ - docs/yard/Servus/Extensions/Async/Ext.html
122
+ - docs/yard/Servus/Extensions/Async/Job.html
123
+ - docs/yard/Servus/Generators.html
124
+ - docs/yard/Servus/Generators/ServiceGenerator.html
125
+ - docs/yard/Servus/Helpers.html
126
+ - docs/yard/Servus/Helpers/ControllerHelpers.html
127
+ - docs/yard/Servus/Railtie.html
128
+ - docs/yard/Servus/Support.html
129
+ - docs/yard/Servus/Support/Errors.html
130
+ - docs/yard/Servus/Support/Errors/AuthenticationError.html
131
+ - docs/yard/Servus/Support/Errors/BadRequestError.html
132
+ - docs/yard/Servus/Support/Errors/ForbiddenError.html
133
+ - docs/yard/Servus/Support/Errors/InternalServerError.html
134
+ - docs/yard/Servus/Support/Errors/NotFoundError.html
135
+ - docs/yard/Servus/Support/Errors/ServiceError.html
136
+ - docs/yard/Servus/Support/Errors/ServiceUnavailableError.html
137
+ - docs/yard/Servus/Support/Errors/UnauthorizedError.html
138
+ - docs/yard/Servus/Support/Errors/UnprocessableEntityError.html
139
+ - docs/yard/Servus/Support/Errors/ValidationError.html
140
+ - docs/yard/Servus/Support/Logger.html
141
+ - docs/yard/Servus/Support/Rescuer.html
142
+ - docs/yard/Servus/Support/Rescuer/BlockContext.html
143
+ - docs/yard/Servus/Support/Rescuer/CallOverride.html
144
+ - docs/yard/Servus/Support/Rescuer/ClassMethods.html
145
+ - docs/yard/Servus/Support/Response.html
146
+ - docs/yard/Servus/Support/Validator.html
147
+ - docs/yard/Servus/Testing.html
148
+ - docs/yard/Servus/Testing/ExampleBuilders.html
149
+ - docs/yard/Servus/Testing/ExampleExtractor.html
150
+ - docs/yard/_index.html
151
+ - docs/yard/class_list.html
152
+ - docs/yard/css/common.css
153
+ - docs/yard/css/full_list.css
154
+ - docs/yard/css/style.css
155
+ - docs/yard/file.1_common_patterns.html
156
+ - docs/yard/file.1_configuration.html
157
+ - docs/yard/file.1_overview.html
158
+ - docs/yard/file.1_schema_validation.html
159
+ - docs/yard/file.2_architecture.html
160
+ - docs/yard/file.2_error_handling.html
161
+ - docs/yard/file.2_migration_guide.html
162
+ - docs/yard/file.2_testing.html
163
+ - docs/yard/file.3_async_execution.html
164
+ - docs/yard/file.3_rails_integration.html
165
+ - docs/yard/file.3_service_objects.html
166
+ - docs/yard/file.4_logging.html
167
+ - docs/yard/file.ErrorHandling.html
168
+ - docs/yard/file.READme.html
169
+ - docs/yard/file.architecture.html
170
+ - docs/yard/file.async_execution.html
171
+ - docs/yard/file.common_patterns.html
172
+ - docs/yard/file.configuration.html
173
+ - docs/yard/file.error_handling.html
174
+ - docs/yard/file.logging.html
175
+ - docs/yard/file.migration_guide.html
176
+ - docs/yard/file.overview.html
177
+ - docs/yard/file.rails_integration.html
178
+ - docs/yard/file.schema_validation.html
179
+ - docs/yard/file.service_objects.html
180
+ - docs/yard/file.testing.html
181
+ - docs/yard/file_list.html
182
+ - docs/yard/frames.html
183
+ - docs/yard/index.html
184
+ - docs/yard/js/app.js
185
+ - docs/yard/js/full_list.js
186
+ - docs/yard/js/jquery.js
187
+ - docs/yard/method_list.html
188
+ - docs/yard/top-level-namespace.html
189
+ - lib/generators/servus/event_handler/event_handler_generator.rb
190
+ - lib/generators/servus/event_handler/templates/handler.rb.erb
191
+ - lib/generators/servus/event_handler/templates/handler_spec.rb.erb
84
192
  - lib/generators/servus/service/service_generator.rb
85
193
  - lib/generators/servus/service/templates/arguments.json.erb
86
194
  - lib/generators/servus/service/templates/result.json.erb
@@ -89,6 +197,10 @@ files:
89
197
  - lib/servus.rb
90
198
  - lib/servus/base.rb
91
199
  - lib/servus/config.rb
200
+ - lib/servus/event_handler.rb
201
+ - lib/servus/events/bus.rb
202
+ - lib/servus/events/emitter.rb
203
+ - lib/servus/events/errors.rb
92
204
  - lib/servus/extensions/async/call.rb
93
205
  - lib/servus/extensions/async/errors.rb
94
206
  - lib/servus/extensions/async/ext.rb
@@ -100,6 +212,10 @@ files:
100
212
  - lib/servus/support/rescuer.rb
101
213
  - lib/servus/support/response.rb
102
214
  - lib/servus/support/validator.rb
215
+ - lib/servus/testing.rb
216
+ - lib/servus/testing/example_builders.rb
217
+ - lib/servus/testing/example_extractor.rb
218
+ - lib/servus/testing/matchers.rb
103
219
  - lib/servus/version.rb
104
220
  - sig/servus.rbs
105
221
  homepage: https://github.com/zarpay/servus
@@ -107,9 +223,9 @@ licenses:
107
223
  - MIT
108
224
  metadata:
109
225
  allowed_push_host: https://rubygems.org
110
- homepage_uri: https://github.com/zarpay/servus
111
226
  source_code_uri: https://github.com/zarpay/servus
112
227
  changelog_uri: https://github.com/zarpay/servus/blob/main/CHANGELOG.md
228
+ rubygems_mfa_required: 'true'
113
229
  rdoc_options: []
114
230
  require_paths:
115
231
  - lib