rails_ops 1.7.2 → 1.7.3

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: c17daad4e6d8e1d04943b73574b3fc6cbe3beed71c6d698a25f112431d9eece2
4
- data.tar.gz: a569daf8bb6737cbba7cb1c4b8402595be565532757939f560ab5eea8f2b06ce
3
+ metadata.gz: 1f8fad9d5d7f381145283c6eb2b4e5cc346d54bd8a70b8e58df3fcc6c37d93eb
4
+ data.tar.gz: 95996ab8e6bec11c73871b1a33b6b291ce7c1da61c24b783a4c709f5298a5fa3
5
5
  SHA512:
6
- metadata.gz: 7808e266d338deed54af3a8111b0dbf3c4364d6885bd09100898e629df57f0b1fb07dc5759d57fb5847770660ac050d39ebdc4e53bef6140131d68d8098360f9
7
- data.tar.gz: 4c7c95588ec9b664e71d4a5dba6f3c74425db902eb0b20d7060ce72c9a4b3dc462e2fead2f0158f13178d58f29c936a3e2c422f8a748d71b7610504e3199194e
6
+ metadata.gz: 686dcd7afb8913c3d2d8faa47207004245fa5dad81fd4660c0183cfa31a28da0f5030be047cbbeec2e44fefaba56339a4058cfcf4a63666d95378ae80fd0ba4a
7
+ data.tar.gz: ee0d9887438ff5c244ebd8b9b0b9186c7ac98f04886c7c58b0153195cddf05b8c4a5a45e902b7b2d093f631b2b2ce5c28ca3ae5edb0992ae4952d04868121db1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.7.3 (2025-05-21)
4
+
5
+ * Allow defining empty schemas via `schema2` method
6
+
3
7
  ## 1.7.2 (2025-04-14)
4
8
 
5
9
  * Add lazy load hooks
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rails_ops (1.7.2)
4
+ rails_ops (1.7.3)
5
5
  active_type (>= 1.3.0)
6
6
  minitest
7
7
  rails (> 4)
@@ -137,6 +137,8 @@ GEM
137
137
  net-smtp (0.4.0.1)
138
138
  net-protocol
139
139
  nio4r (2.7.0)
140
+ nokogiri (1.16.5-arm64-darwin)
141
+ racc (~> 1.4)
140
142
  nokogiri (1.16.5-x86_64-darwin)
141
143
  racc (~> 1.4)
142
144
  nokogiri (1.16.5-x86_64-linux)
@@ -227,6 +229,7 @@ GEM
227
229
  actionpack (>= 5.2)
228
230
  activesupport (>= 5.2)
229
231
  sprockets (>= 3.0.0)
232
+ sqlite3 (1.6.2-arm64-darwin)
230
233
  sqlite3 (1.6.2-x86_64-darwin)
231
234
  sqlite3 (1.6.2-x86_64-linux)
232
235
  stringio (3.1.0)
@@ -244,6 +247,7 @@ GEM
244
247
  zeitwerk (2.6.13)
245
248
 
246
249
  PLATFORMS
250
+ arm64-darwin-24
247
251
  x86_64-darwin-20
248
252
  x86_64-darwin-21
249
253
  x86_64-darwin-22
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.7.2
1
+ 1.7.3
@@ -25,7 +25,12 @@ module RailsOps::Mixins::SchemaValidation
25
25
  # @param *args [Array] Parameters to pass at schema initialization
26
26
  # @yield Block to pass at schema initialization
27
27
  def schema2(*args, &block)
28
- self._op_schema = Schemacop::Schema.new(*args, &block)
28
+ if args.any? || block_given?
29
+ self._op_schema = Schemacop::Schema.new(*args, &block)
30
+ else
31
+ # Define empty schema (not possible with V2 schema).
32
+ schema3
33
+ end
29
34
  end
30
35
 
31
36
  def schema3(type = :hash, *args, **kwargs, &block)
data/rails_ops.gemspec CHANGED
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: rails_ops 1.7.2 ruby lib
2
+ # stub: rails_ops 1.7.3 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "rails_ops".freeze
6
- s.version = "1.7.2"
6
+ s.version = "1.7.3"
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-04-14"
11
+ s.date = "2025-05-22"
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
@@ -198,6 +198,49 @@ class RailsOps::OperationTest < ActiveSupport::TestCase
198
198
  end
199
199
  end
200
200
 
201
+ def test_no_schema
202
+ op = Class.new(RailsOps::Operation) do
203
+ def perform; end
204
+ end
205
+
206
+ assert_nothing_raised do
207
+ op.run!(foo: :bar)
208
+ end
209
+ end
210
+
211
+ def test_empty_schema
212
+ op = Class.new(RailsOps::Operation) do
213
+ schema
214
+ def perform; end
215
+ end
216
+
217
+ assert_raises Schemacop::Exceptions::ValidationError do
218
+ op.run!(foo: :bar)
219
+ end
220
+ end
221
+
222
+ def test_empty_schema2
223
+ op = Class.new(RailsOps::Operation) do
224
+ schema2
225
+ def perform; end
226
+ end
227
+
228
+ assert_raises Schemacop::Exceptions::ValidationError do
229
+ op.run!(foo: :bar)
230
+ end
231
+ end
232
+
233
+ def test_empty_schema3
234
+ op = Class.new(RailsOps::Operation) do
235
+ schema3
236
+ def perform; end
237
+ end
238
+
239
+ assert_raises Schemacop::Exceptions::ValidationError do
240
+ op.run!(foo: :bar)
241
+ end
242
+ end
243
+
201
244
  def test_op_with_schema3(use_default: false)
202
245
  op = Class.new(RailsOps::Operation) do
203
246
  schema_block = proc do
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_ops
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.2
4
+ version: 1.7.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sitrox
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-04-14 00:00:00.000000000 Z
10
+ date: 2025-05-22 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: active_type
@@ -86,8 +85,6 @@ dependencies:
86
85
  - - "<="
87
86
  - !ruby/object:Gem::Version
88
87
  version: '3.1'
89
- description:
90
- email:
91
88
  executables: []
92
89
  extensions: []
93
90
  extra_rdoc_files: []
@@ -260,11 +257,9 @@ files:
260
257
  - test/unit/rails_ops/operation/update_lazy_auth_test.rb
261
258
  - test/unit/rails_ops/operation_test.rb
262
259
  - test/unit/rails_ops/profiler_test.rb
263
- homepage:
264
260
  licenses:
265
261
  - MIT
266
262
  metadata: {}
267
- post_install_message:
268
263
  rdoc_options: []
269
264
  require_paths:
270
265
  - lib
@@ -279,8 +274,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
274
  - !ruby/object:Gem::Version
280
275
  version: '0'
281
276
  requirements: []
282
- rubygems_version: 3.5.23
283
- signing_key:
277
+ rubygems_version: 3.6.8
284
278
  specification_version: 4
285
279
  summary: An operations service layer for rails projects.
286
280
  test_files: