wor-simple_crud 0.5.0 → 0.7.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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +37 -0
  3. data/Gemfile +5 -1
  4. data/README.md +104 -8
  5. data/lib/simple_crud/action_context.rb +45 -10
  6. data/lib/simple_crud/create_context.rb +2 -1
  7. data/lib/simple_crud/destroy_context.rb +2 -1
  8. data/lib/simple_crud/index_context.rb +30 -12
  9. data/lib/simple_crud/pagination/wor_paginate_adapter.rb +7 -1
  10. data/lib/simple_crud/persistence_context.rb +33 -6
  11. data/lib/simple_crud/relation_source.rb +107 -0
  12. data/lib/simple_crud/rspec/config.rb +6 -1
  13. data/lib/simple_crud/rspec/helpers/authentication.rb +2 -1
  14. data/lib/simple_crud/rspec/helpers/controller_options.rb +2 -2
  15. data/lib/simple_crud/rspec/helpers/requests.rb +5 -2
  16. data/lib/simple_crud/rspec.rb +2 -0
  17. data/lib/simple_crud/serializer.rb +14 -0
  18. data/lib/simple_crud/show_context.rb +3 -1
  19. data/lib/simple_crud/simple_crud_controller.rb +29 -6
  20. data/lib/simple_crud/update_context.rb +2 -1
  21. data/lib/simple_crud/version.rb +1 -1
  22. data/lib/spec/matchers/have_been_serialized_with.rb +19 -2
  23. data/lib/spec/shared_examples/simple_crud_for_create.rb +6 -6
  24. data/lib/spec/shared_examples/simple_crud_for_create_with_block.rb +2 -2
  25. data/lib/spec/shared_examples/simple_crud_for_create_with_build.rb +1 -1
  26. data/lib/spec/shared_examples/simple_crud_for_destroy.rb +8 -8
  27. data/lib/spec/shared_examples/simple_crud_for_destroy_with_block.rb +1 -1
  28. data/lib/spec/shared_examples/simple_crud_for_destroy_with_finder.rb +3 -3
  29. data/lib/spec/shared_examples/simple_crud_for_edit.rb +2 -2
  30. data/lib/spec/shared_examples/simple_crud_for_index.rb +3 -3
  31. data/lib/spec/shared_examples/simple_crud_for_index_with_block.rb +1 -1
  32. data/lib/spec/shared_examples/simple_crud_for_index_with_scope.rb +1 -1
  33. data/lib/spec/shared_examples/simple_crud_for_nested_resource.rb +21 -0
  34. data/lib/spec/shared_examples/simple_crud_for_new.rb +1 -1
  35. data/lib/spec/shared_examples/simple_crud_for_new_with_block.rb +1 -1
  36. data/lib/spec/shared_examples/simple_crud_for_new_with_build.rb +1 -1
  37. data/lib/spec/shared_examples/simple_crud_for_owned_resource.rb +35 -0
  38. data/lib/spec/shared_examples/simple_crud_for_show.rb +2 -2
  39. data/lib/spec/shared_examples/simple_crud_for_show_with_block.rb +1 -1
  40. data/lib/spec/shared_examples/simple_crud_for_show_with_finder.rb +1 -1
  41. data/lib/spec/shared_examples/simple_crud_for_update.rb +7 -7
  42. data/lib/spec/shared_examples/simple_crud_for_update_with_finder.rb +1 -1
  43. data/lib/spec/shared_examples/simple_crud_not_found_with_finder.rb +1 -1
  44. data/spec/blueprint/dummy_models_controller_spec.rb +25 -0
  45. data/spec/blueprint_unpaginated/dummy_models_controller_spec.rb +9 -0
  46. data/spec/dummy/app/blueprints/dummy_model_blueprint.rb +10 -0
  47. data/spec/dummy/app/controllers/blueprint/dummy_models_controller.rb +21 -0
  48. data/spec/dummy/app/controllers/blueprint_unpaginated/dummy_models_controller.rb +10 -0
  49. data/spec/dummy/app/controllers/html_notice/dummy_models_controller.rb +11 -0
  50. data/spec/dummy/app/controllers/owned/dummy_models_controller.rb +21 -0
  51. data/spec/dummy/app/controllers/parented/dummy_models_controller.rb +23 -0
  52. data/spec/dummy/app/controllers/scoped_symbol/dummy_models_controller.rb +11 -0
  53. data/spec/dummy/app/models/dummy_model.rb +4 -0
  54. data/spec/dummy/app/serializers/dummy_model_plain_serializer.rb +8 -0
  55. data/spec/dummy/app/views/html_notice/dummy_models/edit.html.erb +1 -0
  56. data/spec/dummy/config/routes.rb +24 -0
  57. data/spec/dummy_model_blueprint_spec.rb +16 -0
  58. data/spec/html_notice/dummy_models_controller_spec.rb +38 -0
  59. data/spec/owned/dummy_models_controller_spec.rb +12 -0
  60. data/spec/parented/dummy_models_controller_spec.rb +29 -0
  61. data/spec/scoped_symbol/dummy_models_controller_spec.rb +7 -0
  62. data/spec/simple_crud/action_context_spec.rb +34 -0
  63. data/spec/simple_crud/index_context_spec.rb +49 -0
  64. data/spec/simple_crud/relation_source_spec.rb +125 -0
  65. data/spec/simple_crud/rspec_config_spec.rb +13 -0
  66. data/spec/simple_crud/serializer_spec.rb +49 -0
  67. data/spec/simple_crud/show_context_spec.rb +5 -0
  68. data/spec/simple_crud_controller_spec.rb +15 -0
  69. metadata +25 -3
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wor-simple_crud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - icoluccio
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-09-01 00:00:00.000000000 Z
10
+ date: 2026-09-18 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rails
@@ -67,6 +67,7 @@ files:
67
67
  - lib/simple_crud/pagination/will_paginate_adapter.rb
68
68
  - lib/simple_crud/pagination/wor_paginate_adapter.rb
69
69
  - lib/simple_crud/persistence_context.rb
70
+ - lib/simple_crud/relation_source.rb
70
71
  - lib/simple_crud/rspec.rb
71
72
  - lib/simple_crud/rspec/config.rb
72
73
  - lib/simple_crud/rspec/helpers.rb
@@ -76,6 +77,7 @@ files:
76
77
  - lib/simple_crud/rspec/helpers/policies.rb
77
78
  - lib/simple_crud/rspec/helpers/requests.rb
78
79
  - lib/simple_crud/rspec/helpers/settings.rb
80
+ - lib/simple_crud/serializer.rb
79
81
  - lib/simple_crud/show_context.rb
80
82
  - lib/simple_crud/simple_crud_controller.rb
81
83
  - lib/simple_crud/update_context.rb
@@ -94,9 +96,11 @@ files:
94
96
  - lib/spec/shared_examples/simple_crud_for_index.rb
95
97
  - lib/spec/shared_examples/simple_crud_for_index_with_block.rb
96
98
  - lib/spec/shared_examples/simple_crud_for_index_with_scope.rb
99
+ - lib/spec/shared_examples/simple_crud_for_nested_resource.rb
97
100
  - lib/spec/shared_examples/simple_crud_for_new.rb
98
101
  - lib/spec/shared_examples/simple_crud_for_new_with_block.rb
99
102
  - lib/spec/shared_examples/simple_crud_for_new_with_build.rb
103
+ - lib/spec/shared_examples/simple_crud_for_owned_resource.rb
100
104
  - lib/spec/shared_examples/simple_crud_for_show.rb
101
105
  - lib/spec/shared_examples/simple_crud_for_show_with_block.rb
102
106
  - lib/spec/shared_examples/simple_crud_for_show_with_finder.rb
@@ -116,11 +120,14 @@ files:
116
120
  - spec/block_new/dummy_models_controller_spec.rb
117
121
  - spec/block_redirect/dummy_models_controller_spec.rb
118
122
  - spec/block_show/dummy_models_controller_spec.rb
123
+ - spec/blueprint/dummy_models_controller_spec.rb
124
+ - spec/blueprint_unpaginated/dummy_models_controller_spec.rb
119
125
  - spec/built/dummy_models_controller_spec.rb
120
126
  - spec/cached/dummy_models_controller_spec.rb
121
127
  - spec/cached_defaults/dummy_models_controller_spec.rb
122
128
  - spec/dummy/Rakefile
123
129
  - spec/dummy/app/assets/config/manifest.js
130
+ - spec/dummy/app/blueprints/dummy_model_blueprint.rb
124
131
  - spec/dummy/app/controllers/application_controller.rb
125
132
  - spec/dummy/app/controllers/block/dummy_models_controller.rb
126
133
  - spec/dummy/app/controllers/block_create/dummy_models_controller.rb
@@ -131,6 +138,8 @@ files:
131
138
  - spec/dummy/app/controllers/block_new/dummy_models_controller.rb
132
139
  - spec/dummy/app/controllers/block_redirect/dummy_models_controller.rb
133
140
  - spec/dummy/app/controllers/block_show/dummy_models_controller.rb
141
+ - spec/dummy/app/controllers/blueprint/dummy_models_controller.rb
142
+ - spec/dummy/app/controllers/blueprint_unpaginated/dummy_models_controller.rb
134
143
  - spec/dummy/app/controllers/built/dummy_models_controller.rb
135
144
  - spec/dummy/app/controllers/cached/dummy_models_controller.rb
136
145
  - spec/dummy/app/controllers/cached_defaults/dummy_models_controller.rb
@@ -142,16 +151,20 @@ files:
142
151
  - spec/dummy/app/controllers/html_finder/dummy_models_controller.rb
143
152
  - spec/dummy/app/controllers/html_modes/base_controller.rb
144
153
  - spec/dummy/app/controllers/html_new/dummy_models_controller.rb
154
+ - spec/dummy/app/controllers/html_notice/dummy_models_controller.rb
145
155
  - spec/dummy/app/controllers/html_scoped/dummy_models_controller.rb
146
156
  - spec/dummy/app/controllers/html_show/dummy_models_controller.rb
147
157
  - spec/dummy/app/controllers/html_update/dummy_models_controller.rb
148
158
  - spec/dummy/app/controllers/invalid_status/dummy_models_controller.rb
149
159
  - spec/dummy/app/controllers/nested/dummy_models_controller.rb
150
160
  - spec/dummy/app/controllers/nested_route/dummy_models_controller.rb
161
+ - spec/dummy/app/controllers/owned/dummy_models_controller.rb
162
+ - spec/dummy/app/controllers/parented/dummy_models_controller.rb
151
163
  - spec/dummy/app/controllers/redirect/dummy_models_controller.rb
152
164
  - spec/dummy/app/controllers/redirect_auth/dummy_models_controller.rb
153
165
  - spec/dummy/app/controllers/scoped/dummy_models_controller.rb
154
166
  - spec/dummy/app/controllers/scoped_params/dummy_models_controller.rb
167
+ - spec/dummy/app/controllers/scoped_symbol/dummy_models_controller.rb
155
168
  - spec/dummy/app/controllers/strict/dummy_models_controller.rb
156
169
  - spec/dummy/app/controllers/unpaginated_scoped/dummy_models_controller.rb
157
170
  - spec/dummy/app/controllers/without_pagination/dummy_models_controller.rb
@@ -160,6 +173,7 @@ files:
160
173
  - spec/dummy/app/models/dummy_model.rb
161
174
  - spec/dummy/app/models/dummy_model_policy.rb
162
175
  - spec/dummy/app/models/user.rb
176
+ - spec/dummy/app/serializers/dummy_model_plain_serializer.rb
163
177
  - spec/dummy/app/serializers/dummy_model_serializer.rb
164
178
  - spec/dummy/app/views/block/dummy_models/index.html.erb
165
179
  - spec/dummy/app/views/block_new/dummy_models/new.html.erb
@@ -171,6 +185,7 @@ files:
171
185
  - spec/dummy/app/views/html_finder/dummy_models/new.html.erb
172
186
  - spec/dummy/app/views/html_finder/dummy_models/show.html.erb
173
187
  - spec/dummy/app/views/html_new/dummy_models/new.html.erb
188
+ - spec/dummy/app/views/html_notice/dummy_models/edit.html.erb
174
189
  - spec/dummy/app/views/html_scoped/dummy_models/index.html.erb
175
190
  - spec/dummy/app/views/html_show/dummy_models/show.html.erb
176
191
  - spec/dummy/app/views/html_update/dummy_models/edit.html.erb
@@ -206,6 +221,7 @@ files:
206
221
  - spec/dummy/spec/factories/dummy_models.rb
207
222
  - spec/dummy/spec/factories/users.rb
208
223
  - spec/dummy_controller_spec.rb
224
+ - spec/dummy_model_blueprint_spec.rb
209
225
  - spec/dummy_model_policy_spec.rb
210
226
  - spec/dummy_model_serializer_spec.rb
211
227
  - spec/finder/dummy_models_controller_spec.rb
@@ -214,23 +230,29 @@ files:
214
230
  - spec/html_destroy/dummy_models_controller_spec.rb
215
231
  - spec/html_finder/dummy_models_controller_spec.rb
216
232
  - spec/html_new/dummy_models_controller_spec.rb
233
+ - spec/html_notice/dummy_models_controller_spec.rb
217
234
  - spec/html_scoped/dummy_models_controller_spec.rb
218
235
  - spec/html_show/dummy_models_controller_spec.rb
219
236
  - spec/html_update/dummy_models_controller_spec.rb
220
237
  - spec/invalid_status/dummy_models_controller_spec.rb
221
238
  - spec/nested/dummy_models_controller_spec.rb
222
239
  - spec/nested_route/dummy_models_controller_spec.rb
240
+ - spec/owned/dummy_models_controller_spec.rb
241
+ - spec/parented/dummy_models_controller_spec.rb
223
242
  - spec/redirect/dummy_models_controller_spec.rb
224
243
  - spec/redirect_auth/dummy_models_controller_spec.rb
225
244
  - spec/scoped/dummy_models_controller_spec.rb
226
245
  - spec/scoped_params/dummy_models_controller_spec.rb
246
+ - spec/scoped_symbol/dummy_models_controller_spec.rb
227
247
  - spec/simple_crud/action_context_spec.rb
228
248
  - spec/simple_crud/authorization/action_policy_adapter_spec.rb
229
249
  - spec/simple_crud/authorization/can_can_can_adapter_spec.rb
230
250
  - spec/simple_crud/authorization/pundit_adapter_spec.rb
231
251
  - spec/simple_crud/index_context_spec.rb
232
252
  - spec/simple_crud/pagination/adapters_spec.rb
253
+ - spec/simple_crud/relation_source_spec.rb
233
254
  - spec/simple_crud/rspec_config_spec.rb
255
+ - spec/simple_crud/serializer_spec.rb
234
256
  - spec/simple_crud/show_context_spec.rb
235
257
  - spec/simple_crud_configuration_spec.rb
236
258
  - spec/simple_crud_controller_spec.rb
@@ -258,7 +280,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
258
280
  - !ruby/object:Gem::Version
259
281
  version: '0'
260
282
  requirements: []
261
- rubygems_version: 3.6.9
283
+ rubygems_version: 3.6.7
262
284
  specification_version: 4
263
285
  summary: Simplified CRUD endpoints for Rails API controllers
264
286
  test_files: []