rails_ops 1.1.24 → 1.1.28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rubocop.yml +17 -0
  3. data/.github/workflows/ruby.yml +37 -7
  4. data/.gitignore +2 -0
  5. data/.rubocop.yml +1 -0
  6. data/Appraisals +19 -0
  7. data/CHANGELOG.md +25 -2
  8. data/LICENSE +1 -1
  9. data/README.md +106 -13
  10. data/Rakefile +2 -0
  11. data/VERSION +1 -1
  12. data/gemfiles/rails_5.1.gemfile +7 -0
  13. data/gemfiles/rails_5.2.gemfile +7 -0
  14. data/gemfiles/rails_6.0.gemfile +7 -0
  15. data/gemfiles/rails_6.1.gemfile +7 -0
  16. data/gemfiles/rails_7.0.gemfile +7 -0
  17. data/lib/generators/operation/USAGE +21 -0
  18. data/lib/generators/operation/operation_generator.rb +64 -0
  19. data/lib/generators/operation/templates/controller.erb +56 -0
  20. data/lib/generators/operation/templates/create.erb +15 -0
  21. data/lib/generators/operation/templates/destroy.erb +13 -0
  22. data/lib/generators/operation/templates/load.erb +13 -0
  23. data/lib/generators/operation/templates/update.erb +16 -0
  24. data/lib/generators/operation/templates/view.erb +0 -0
  25. data/lib/rails_ops/mixins/model/authorization.rb +1 -3
  26. data/lib/rails_ops/model_mixins/sti_fixes.rb +2 -6
  27. data/lib/rails_ops/model_mixins/virtual_attributes/virtual_column_wrapper.rb +4 -0
  28. data/lib/rails_ops.rb +1 -13
  29. data/rails_ops.gemspec +10 -6
  30. data/test/dummy/app/models/flower.rb +7 -0
  31. data/test/dummy/config/application.rb +10 -10
  32. data/test/dummy/db/schema.rb +4 -0
  33. data/test/unit/rails_ops/generators/operation_generator_test.rb +254 -0
  34. data/test/unit/rails_ops/operation/model/create_test.rb +16 -0
  35. data/test/unit/rails_ops/operation/model/update_test.rb +71 -0
  36. metadata +56 -11
  37. data/lib/rails_ops/model_casting.rb +0 -17
  38. data/lib/rails_ops/patches/active_type_patch.rb +0 -52
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_ops
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.24
4
+ version: 1.1.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sitrox
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-25 00:00:00.000000000 Z
11
+ date: 2022-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: appraisal
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +122,20 @@ dependencies:
108
122
  - - '='
109
123
  - !ruby/object:Gem::Version
110
124
  version: 0.47.1
125
+ - !ruby/object:Gem::Dependency
126
+ name: sprockets-rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: active_type
113
141
  requirement: !ruby/object:Gem::Requirement
@@ -184,22 +212,37 @@ dependencies:
184
212
  - - "<="
185
213
  - !ruby/object:Gem::Version
186
214
  version: '3.1'
187
- description:
188
- email:
215
+ description:
216
+ email:
189
217
  executables: []
190
218
  extensions: []
191
219
  extra_rdoc_files: []
192
220
  files:
221
+ - ".github/workflows/rubocop.yml"
193
222
  - ".github/workflows/ruby.yml"
194
223
  - ".gitignore"
195
224
  - ".releaser_config"
196
225
  - ".rubocop.yml"
226
+ - Appraisals
197
227
  - CHANGELOG.md
198
228
  - Gemfile
199
229
  - LICENSE
200
230
  - README.md
201
231
  - Rakefile
202
232
  - VERSION
233
+ - gemfiles/rails_5.1.gemfile
234
+ - gemfiles/rails_5.2.gemfile
235
+ - gemfiles/rails_6.0.gemfile
236
+ - gemfiles/rails_6.1.gemfile
237
+ - gemfiles/rails_7.0.gemfile
238
+ - lib/generators/operation/USAGE
239
+ - lib/generators/operation/operation_generator.rb
240
+ - lib/generators/operation/templates/controller.erb
241
+ - lib/generators/operation/templates/create.erb
242
+ - lib/generators/operation/templates/destroy.erb
243
+ - lib/generators/operation/templates/load.erb
244
+ - lib/generators/operation/templates/update.erb
245
+ - lib/generators/operation/templates/view.erb
203
246
  - lib/rails_ops.rb
204
247
  - lib/rails_ops/authorization_backend/abstract.rb
205
248
  - lib/rails_ops/authorization_backend/can_can_can.rb
@@ -225,7 +268,6 @@ files:
225
268
  - lib/rails_ops/mixins/routes.rb
226
269
  - lib/rails_ops/mixins/schema_validation.rb
227
270
  - lib/rails_ops/mixins/sub_ops.rb
228
- - lib/rails_ops/model_casting.rb
229
271
  - lib/rails_ops/model_mixins.rb
230
272
  - lib/rails_ops/model_mixins/ar_extension.rb
231
273
  - lib/rails_ops/model_mixins/parent_op.rb
@@ -240,7 +282,6 @@ files:
240
282
  - lib/rails_ops/operation/model/destroy.rb
241
283
  - lib/rails_ops/operation/model/load.rb
242
284
  - lib/rails_ops/operation/model/update.rb
243
- - lib/rails_ops/patches/active_type_patch.rb
244
285
  - lib/rails_ops/profiler.rb
245
286
  - lib/rails_ops/profiler/node.rb
246
287
  - lib/rails_ops/railtie.rb
@@ -269,6 +310,7 @@ files:
269
310
  - test/dummy/app/models/cat.rb
270
311
  - test/dummy/app/models/concerns/.keep
271
312
  - test/dummy/app/models/dog.rb
313
+ - test/dummy/app/models/flower.rb
272
314
  - test/dummy/app/models/group.rb
273
315
  - test/dummy/app/models/nightingale.rb
274
316
  - test/dummy/app/models/phoenix.rb
@@ -317,6 +359,7 @@ files:
317
359
  - test/dummy/public/favicon.ico
318
360
  - test/dummy/tmp/.keep
319
361
  - test/test_helper.rb
362
+ - test/unit/rails_ops/generators/operation_generator_test.rb
320
363
  - test/unit/rails_ops/mixins/model/nesting.rb
321
364
  - test/unit/rails_ops/mixins/policies_test.rb
322
365
  - test/unit/rails_ops/operation/model/create_test.rb
@@ -327,10 +370,10 @@ files:
327
370
  - test/unit/rails_ops/operation/update_auth_test.rb
328
371
  - test/unit/rails_ops/operation/update_lazy_auth_test.rb
329
372
  - test/unit/rails_ops/operation_test.rb
330
- homepage:
373
+ homepage:
331
374
  licenses: []
332
375
  metadata: {}
333
- post_install_message:
376
+ post_install_message:
334
377
  rdoc_options: []
335
378
  require_paths:
336
379
  - lib
@@ -345,8 +388,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
345
388
  - !ruby/object:Gem::Version
346
389
  version: '0'
347
390
  requirements: []
348
- rubygems_version: 3.2.22
349
- signing_key:
391
+ rubygems_version: 3.1.2
392
+ signing_key:
350
393
  specification_version: 4
351
394
  summary: An operations service layer for rails projects.
352
395
  test_files:
@@ -372,6 +415,7 @@ test_files:
372
415
  - test/dummy/app/models/cat.rb
373
416
  - test/dummy/app/models/concerns/.keep
374
417
  - test/dummy/app/models/dog.rb
418
+ - test/dummy/app/models/flower.rb
375
419
  - test/dummy/app/models/group.rb
376
420
  - test/dummy/app/models/nightingale.rb
377
421
  - test/dummy/app/models/phoenix.rb
@@ -420,6 +464,7 @@ test_files:
420
464
  - test/dummy/public/favicon.ico
421
465
  - test/dummy/tmp/.keep
422
466
  - test/test_helper.rb
467
+ - test/unit/rails_ops/generators/operation_generator_test.rb
423
468
  - test/unit/rails_ops/mixins/model/nesting.rb
424
469
  - test/unit/rails_ops/mixins/policies_test.rb
425
470
  - test/unit/rails_ops/operation/model/create_test.rb
@@ -1,17 +0,0 @@
1
- module RailsOps::ModelCasting
2
- def self.cast(model)
3
- if model.class.respond_to?(:extended_record_base_class)
4
- return ActiveType.cast(model, model.class.extended_record_base_class)
5
- else
6
- return model
7
- end
8
- end
9
-
10
- def self.original_class_for(model_class)
11
- if model_class.respond_to?(:extended_record_base_class)
12
- return model_class.extended_record_base_class
13
- else
14
- return model_class
15
- end
16
- end
17
- end
@@ -1,52 +0,0 @@
1
- # Internal reference: #25564
2
- module ActiveType
3
- class TypeCaster
4
- def type_cast_from_user(value)
5
- # For some reason, Rails defines additional type casting logic
6
- # outside the classes that have that responsibility.
7
- case @type
8
- when :integer
9
- if value == ''
10
- nil
11
- else
12
- native_type_cast_from_user(value)
13
- end
14
- when :timestamp, :datetime
15
- time = native_type_cast_from_user(value)
16
- if time && ActiveRecord::Base.time_zone_aware_attributes
17
- time = ActiveSupport::TimeWithZone.new(nil, Time.zone, time)
18
- end
19
- time
20
- when Integer.class
21
- if value == ''
22
- nil
23
- else
24
- value.to_i
25
- end
26
- else
27
- native_type_cast_from_user(value)
28
- end
29
- end
30
-
31
- module NativeCasters
32
- class DelegateToType
33
- def initialize(type, connection)
34
- # The specified type (e.g. "string") may not necessary match the
35
- # native type ("varchar") expected by the connection adapter.
36
- # PostgreSQL is one of these. Perform a translation if the adapter
37
- # supports it (but don't turn a mysql boolean into a tinyint).
38
- if !type.nil? && !(type == :boolean) && type.respond_to?(:to_sym) && connection.respond_to?(:native_database_types)
39
- native_type = connection.native_database_types[type.try(:to_sym)]
40
- if native_type && native_type[:name]
41
- type = native_type[:name]
42
- else
43
- # unknown type, we just dont cast
44
- type = nil
45
- end
46
- end
47
- @active_record_type = connection.lookup_cast_type(type)
48
- end
49
- end
50
- end
51
- end
52
- end