rails_ops 1.7.1 → 1.7.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2daa2888b099269858b2d97722dd19316f1547633f26f76c840fa3ceb5188705
4
- data.tar.gz: 487627e4cf995b265a2b3b70711c915bad37149982acd805d863208eaf579def
3
+ metadata.gz: c17daad4e6d8e1d04943b73574b3fc6cbe3beed71c6d698a25f112431d9eece2
4
+ data.tar.gz: a569daf8bb6737cbba7cb1c4b8402595be565532757939f560ab5eea8f2b06ce
5
5
  SHA512:
6
- metadata.gz: fe5df67fda43b85dd4bd069fc764b0850b78caf03d5610b889bbe2566ca083eb67b9237ae0cb3bca78dee66b6b671c0ef07a2b673f9b5507ce4ac61a0d40af55
7
- data.tar.gz: 118a98a329619d2c829f5ae89f7d9347d492bcfd4972b5b93832ca6b611f12f10febba81a41dc2cde56d9c8043846f18ec4d3a8ad20582c22486895f771324dd
6
+ metadata.gz: 7808e266d338deed54af3a8111b0dbf3c4364d6885bd09100898e629df57f0b1fb07dc5759d57fb5847770660ac050d39ebdc4e53bef6140131d68d8098360f9
7
+ data.tar.gz: 4c7c95588ec9b664e71d4a5dba6f3c74425db902eb0b20d7060ce72c9a4b3dc462e2fead2f0158f13178d58f29c936a3e2c422f8a748d71b7610504e3199194e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.7.2 (2025-04-14)
4
+
5
+ * Add lazy load hooks
6
+
3
7
  ## 1.7.1 (2025-01-31)
4
8
 
5
9
  * Raise exception when using `model_authorization_action` in operations inheriting
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rails_ops (1.7.1)
4
+ rails_ops (1.7.2)
5
5
  active_type (>= 1.3.0)
6
6
  minitest
7
7
  rails (> 4)
data/README.md CHANGED
@@ -1833,6 +1833,24 @@ Of course, at this point, the operations will need some adaptions, especially th
1833
1833
  [parameter schemas](#validating-params), and the controllers need the logic for the
1834
1834
  success and failure cases, as this depends on your application.
1835
1835
 
1836
+ Lazy Load Hooks
1837
+ ---------------
1838
+
1839
+ RailsOps provides the following [Rails Lazy Load
1840
+ Hooks](https://api.rubyonrails.org/v7.1.3.4/classes/ActiveSupport/LazyLoadHooks.html):
1841
+
1842
+ - `rails_ops_op_model_create` for `RailsOps::Operation::Model::Create`
1843
+ - `rails_ops_op_model_destroy` for `RailsOps::Operation::Model::Destroy`
1844
+ - `rails_ops_op_model_load` for `RailsOps::Operation::Model::Load`
1845
+ - `rails_ops_op_model_update` for `RailsOps::Operation::Model::Update`
1846
+ - `rails_ops_op` for `RailsOps::Operation`
1847
+
1848
+ Example usage:
1849
+
1850
+ ```ruby
1851
+ ActiveSupport.on_load(:rails_ops_op_model_create) { include MyMixin }
1852
+ ```
1853
+
1836
1854
  Caveats
1837
1855
  -------
1838
1856
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.7.1
1
+ 1.7.2
@@ -33,3 +33,5 @@ class RailsOps::Operation::Model::Create < RailsOps::Operation::Model
33
33
  save!
34
34
  end
35
35
  end
36
+
37
+ ActiveSupport.run_load_hooks(:rails_ops_op_model_create, RailsOps::Operation::Model::Create)
@@ -34,3 +34,5 @@ class RailsOps::Operation::Model::Destroy < RailsOps::Operation::Model::Load
34
34
  model.destroy!
35
35
  end
36
36
  end
37
+
38
+ ActiveSupport.run_load_hooks(:rails_ops_op_model_destroy, RailsOps::Operation::Model::Destroy)
@@ -142,3 +142,5 @@ class RailsOps::Operation::Model::Load < RailsOps::Operation::Model
142
142
  return nil
143
143
  end
144
144
  end
145
+
146
+ ActiveSupport.run_load_hooks(:rails_ops_op_model_load, RailsOps::Operation::Model::Load)
@@ -61,3 +61,5 @@ class RailsOps::Operation::Model::Update < RailsOps::Operation::Model::Load
61
61
  save!
62
62
  end
63
63
  end
64
+
65
+ ActiveSupport.run_load_hooks(:rails_ops_op_model_update, RailsOps::Operation::Model::Update)
@@ -194,3 +194,5 @@ class RailsOps::Operation::Model < RailsOps::Operation
194
194
  fail NotImplementedError, 'Method `build_model` must be implemented.'
195
195
  end
196
196
  end
197
+
198
+ ActiveSupport.run_load_hooks(:rails_ops_op_model, RailsOps::Operation::Model)
@@ -246,3 +246,5 @@ class RailsOps::Operation
246
246
  return params.inspect
247
247
  end
248
248
  end
249
+
250
+ ActiveSupport.run_load_hooks(:rails_ops_op, RailsOps::Operation)
data/rails_ops.gemspec CHANGED
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: rails_ops 1.7.1 ruby lib
2
+ # stub: rails_ops 1.7.2 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "rails_ops".freeze
6
- s.version = "1.7.1"
6
+ s.version = "1.7.2"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["Sitrox".freeze]
11
- s.date = "2025-01-31"
11
+ s.date = "2025-04-14"
12
12
  s.files = [".github/workflows/rubocop.yml".freeze, ".github/workflows/ruby.yml".freeze, ".gitignore".freeze, ".releaser_config".freeze, ".rubocop.yml".freeze, "Appraisals".freeze, "CHANGELOG.md".freeze, "Gemfile".freeze, "Gemfile.lock".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "gemfiles/rails_6.0.gemfile".freeze, "gemfiles/rails_6.1.gemfile".freeze, "gemfiles/rails_7.0.gemfile".freeze, "gemfiles/rails_7.1.gemfile".freeze, "gemfiles/rails_7.2.gemfile".freeze, "gemfiles/rails_8.0.gemfile".freeze, "lib/generators/operation/USAGE".freeze, "lib/generators/operation/operation_generator.rb".freeze, "lib/generators/operation/templates/controller.erb".freeze, "lib/generators/operation/templates/controller_wrapper.erb".freeze, "lib/generators/operation/templates/create.erb".freeze, "lib/generators/operation/templates/destroy.erb".freeze, "lib/generators/operation/templates/load.erb".freeze, "lib/generators/operation/templates/update.erb".freeze, "lib/generators/operation/templates/view.erb".freeze, "lib/rails_ops.rb".freeze, "lib/rails_ops/authorization_backend/abstract.rb".freeze, "lib/rails_ops/authorization_backend/can_can_can.rb".freeze, "lib/rails_ops/configuration.rb".freeze, "lib/rails_ops/context.rb".freeze, "lib/rails_ops/controller_mixin.rb".freeze, "lib/rails_ops/exceptions.rb".freeze, "lib/rails_ops/hooked_job.rb".freeze, "lib/rails_ops/hookup.rb".freeze, "lib/rails_ops/hookup/dsl.rb".freeze, "lib/rails_ops/hookup/dsl_validator.rb".freeze, "lib/rails_ops/hookup/hook.rb".freeze, "lib/rails_ops/log_subscriber.rb".freeze, "lib/rails_ops/mixins.rb".freeze, "lib/rails_ops/mixins/authorization.rb".freeze, "lib/rails_ops/mixins/log_settings.rb".freeze, "lib/rails_ops/mixins/model.rb".freeze, "lib/rails_ops/mixins/model/authorization.rb".freeze, "lib/rails_ops/mixins/model/nesting.rb".freeze, "lib/rails_ops/mixins/param_authorization.rb".freeze, "lib/rails_ops/mixins/policies.rb".freeze, "lib/rails_ops/mixins/require_context.rb".freeze, "lib/rails_ops/mixins/routes.rb".freeze, "lib/rails_ops/mixins/schema_validation.rb".freeze, "lib/rails_ops/mixins/sub_ops.rb".freeze, "lib/rails_ops/model_mixins.rb".freeze, "lib/rails_ops/model_mixins/ar_extension.rb".freeze, "lib/rails_ops/model_mixins/marshalling.rb".freeze, "lib/rails_ops/model_mixins/parent_op.rb".freeze, "lib/rails_ops/model_mixins/sti_fixes.rb".freeze, "lib/rails_ops/model_mixins/virtual_attributes.rb".freeze, "lib/rails_ops/model_mixins/virtual_attributes/virtual_column_wrapper.rb".freeze, "lib/rails_ops/model_mixins/virtual_has_one.rb".freeze, "lib/rails_ops/model_mixins/virtual_model_name.rb".freeze, "lib/rails_ops/operation.rb".freeze, "lib/rails_ops/operation/model.rb".freeze, "lib/rails_ops/operation/model/create.rb".freeze, "lib/rails_ops/operation/model/destroy.rb".freeze, "lib/rails_ops/operation/model/load.rb".freeze, "lib/rails_ops/operation/model/update.rb".freeze, "lib/rails_ops/profiler.rb".freeze, "lib/rails_ops/profiler/node.rb".freeze, "lib/rails_ops/railtie.rb".freeze, "lib/rails_ops/scoped_env.rb".freeze, "lib/rails_ops/virtual_model.rb".freeze, "rails_ops.gemspec".freeze, "test/db/models.rb".freeze, "test/db/schema.rb".freeze, "test/dummy/Rakefile".freeze, "test/dummy/app/assets/config/manifest.js".freeze, "test/dummy/app/assets/images/.keep".freeze, "test/dummy/app/assets/javascripts/application.js".freeze, "test/dummy/app/assets/javascripts/cable.js".freeze, "test/dummy/app/assets/javascripts/channels/.keep".freeze, "test/dummy/app/assets/stylesheets/application.css".freeze, "test/dummy/app/channels/application_cable/channel.rb".freeze, "test/dummy/app/channels/application_cable/connection.rb".freeze, "test/dummy/app/controllers/application_controller.rb".freeze, "test/dummy/app/controllers/concerns/.keep".freeze, "test/dummy/app/controllers/group_controller.rb".freeze, "test/dummy/app/helpers/application_helper.rb".freeze, "test/dummy/app/jobs/application_job.rb".freeze, "test/dummy/app/mailers/application_mailer.rb".freeze, "test/dummy/app/models/ability.rb".freeze, "test/dummy/app/models/animal.rb".freeze, "test/dummy/app/models/application_record.rb".freeze, "test/dummy/app/models/bird.rb".freeze, "test/dummy/app/models/cat.rb".freeze, "test/dummy/app/models/computer.rb".freeze, "test/dummy/app/models/concerns/.keep".freeze, "test/dummy/app/models/cpu.rb".freeze, "test/dummy/app/models/dog.rb".freeze, "test/dummy/app/models/flower.rb".freeze, "test/dummy/app/models/group.rb".freeze, "test/dummy/app/models/mainboard.rb".freeze, "test/dummy/app/models/nightingale.rb".freeze, "test/dummy/app/models/phoenix.rb".freeze, "test/dummy/app/models/user.rb".freeze, "test/dummy/app/views/layouts/application.html.erb".freeze, "test/dummy/app/views/layouts/mailer.html.erb".freeze, "test/dummy/app/views/layouts/mailer.text.erb".freeze, "test/dummy/bin/bundle".freeze, "test/dummy/bin/rails".freeze, "test/dummy/bin/rake".freeze, "test/dummy/bin/setup".freeze, "test/dummy/bin/update".freeze, "test/dummy/bin/yarn".freeze, "test/dummy/config.ru".freeze, "test/dummy/config/application.rb".freeze, "test/dummy/config/boot.rb".freeze, "test/dummy/config/cable.yml".freeze, "test/dummy/config/database.yml".freeze, "test/dummy/config/environment.rb".freeze, "test/dummy/config/environments/development.rb".freeze, "test/dummy/config/environments/production.rb".freeze, "test/dummy/config/environments/test.rb".freeze, "test/dummy/config/hookup.rb".freeze, "test/dummy/config/initializers/application_controller_renderer.rb".freeze, "test/dummy/config/initializers/assets.rb".freeze, "test/dummy/config/initializers/backtrace_silencers.rb".freeze, "test/dummy/config/initializers/cookies_serializer.rb".freeze, "test/dummy/config/initializers/filter_parameter_logging.rb".freeze, "test/dummy/config/initializers/inflections.rb".freeze, "test/dummy/config/initializers/mime_types.rb".freeze, "test/dummy/config/initializers/rails_ops.rb".freeze, "test/dummy/config/initializers/wrap_parameters.rb".freeze, "test/dummy/config/locales/en.yml".freeze, "test/dummy/config/puma.rb".freeze, "test/dummy/config/routes.rb".freeze, "test/dummy/config/secrets.yml".freeze, "test/dummy/config/spring.rb".freeze, "test/dummy/db/schema.rb".freeze, "test/dummy/lib/assets/.keep".freeze, "test/dummy/log/.keep".freeze, "test/dummy/package.json".freeze, "test/dummy/public/404.html".freeze, "test/dummy/public/422.html".freeze, "test/dummy/public/500.html".freeze, "test/dummy/public/apple-touch-icon-precomposed.png".freeze, "test/dummy/public/apple-touch-icon.png".freeze, "test/dummy/public/favicon.ico".freeze, "test/dummy/tmp/.keep".freeze, "test/test_helper.rb".freeze, "test/unit/rails_ops/generators/operation_generator_test.rb".freeze, "test/unit/rails_ops/hookup_test.rb".freeze, "test/unit/rails_ops/mixins/controller_test.rb".freeze, "test/unit/rails_ops/mixins/model/deep_nesting_test.rb".freeze, "test/unit/rails_ops/mixins/model/marshalling_test.rb".freeze, "test/unit/rails_ops/mixins/param_authorization_test.rb".freeze, "test/unit/rails_ops/mixins/policies_test.rb".freeze, "test/unit/rails_ops/operation/auth_test.rb".freeze, "test/unit/rails_ops/operation/model/create_test.rb".freeze, "test/unit/rails_ops/operation/model/destroy_test.rb".freeze, "test/unit/rails_ops/operation/model/load_test.rb".freeze, "test/unit/rails_ops/operation/model/sti_test.rb".freeze, "test/unit/rails_ops/operation/model/update_test.rb".freeze, "test/unit/rails_ops/operation/model_test.rb".freeze, "test/unit/rails_ops/operation/update_lazy_auth_test.rb".freeze, "test/unit/rails_ops/operation_test.rb".freeze, "test/unit/rails_ops/profiler_test.rb".freeze]
13
13
  s.licenses = ["MIT".freeze]
14
14
  s.rubygems_version = "3.4.6".freeze
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_ops
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.1
4
+ version: 1.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sitrox
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-01-31 00:00:00.000000000 Z
11
+ date: 2025-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_type
@@ -86,8 +86,8 @@ dependencies:
86
86
  - - "<="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '3.1'
89
- description:
90
- email:
89
+ description:
90
+ email:
91
91
  executables: []
92
92
  extensions: []
93
93
  extra_rdoc_files: []
@@ -260,11 +260,11 @@ files:
260
260
  - test/unit/rails_ops/operation/update_lazy_auth_test.rb
261
261
  - test/unit/rails_ops/operation_test.rb
262
262
  - test/unit/rails_ops/profiler_test.rb
263
- homepage:
263
+ homepage:
264
264
  licenses:
265
265
  - MIT
266
266
  metadata: {}
267
- post_install_message:
267
+ post_install_message:
268
268
  rdoc_options: []
269
269
  require_paths:
270
270
  - lib
@@ -279,8 +279,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
279
  - !ruby/object:Gem::Version
280
280
  version: '0'
281
281
  requirements: []
282
- rubygems_version: 3.4.6
283
- signing_key:
282
+ rubygems_version: 3.5.23
283
+ signing_key:
284
284
  specification_version: 4
285
285
  summary: An operations service layer for rails projects.
286
286
  test_files: