rails_ops 1.1.4 → 1.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +28 -0
- data/README.md +3 -0
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/rails_ops/controller_mixin.rb +5 -0
- data/lib/rails_ops/exceptions.rb +2 -0
- data/lib/rails_ops/hookup.rb +6 -1
- data/lib/rails_ops/operation.rb +7 -2
- data/rails_ops.gemspec +5 -5
- data/test/unit/rails_ops/operation_test.rb +5 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 71da3242717173869f38ccd3f40f17ae4a395b068feaac00e5147a8133bb1544
|
4
|
+
data.tar.gz: 45f855da0ce0deb441e7d22f91b40c721af7daefdfd3e31e4b45df3af66ce3a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d125f6a04f7eaa72862480b0e5319af1d6f21a991b53d0eeb72522b5f2eaa59fae4fd1192d8b1fc14f53038902844545b718355e0fa03b9bb59f0c707d226358
|
7
|
+
data.tar.gz: 9e92c942492f0b6c3dad3a9663ff6f04f90781f0f22d08424d83f791c524f0dc614c81feb1cd710e7f419a90ce0ffe7e5f763b1ada27639eb0f260f939b89ed6
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,33 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 1.1.10 (2020-08-28)
|
4
|
+
|
5
|
+
* Gracefully filter params when inspecting an operation. If the params included
|
6
|
+
numeric keys in `rails < 6`, this lead to an error. This error is now handeled
|
7
|
+
gracefully and params are not inspected.
|
8
|
+
|
9
|
+
## 1.1.9 (2020-07-22)
|
10
|
+
|
11
|
+
* Do not call `inspect` every time an op is run
|
12
|
+
|
13
|
+
## 1.1.8 (2020-07-08)
|
14
|
+
|
15
|
+
* Fix bug where only the first hooked operation was called
|
16
|
+
|
17
|
+
## 1.1.7 (2020-06-18)
|
18
|
+
|
19
|
+
* Add controller / helper method `model?`
|
20
|
+
|
21
|
+
## 1.1.6 (2020-04-08)
|
22
|
+
|
23
|
+
* Fix suppressed validation errors by operations called via hookup. Now the
|
24
|
+
exception {RailsOps::Exceptions::HookupOpValidationFailed} is thrown if a hook
|
25
|
+
target operation throws a validation error throws a validation error
|
26
|
+
|
27
|
+
## 1.1.5 (2020-03-23)
|
28
|
+
|
29
|
+
* Upgrade `active_type` to `~> 1.3.0` for Rails 6 compatibility
|
30
|
+
|
3
31
|
## 1.1.4 (2020-03-10)
|
4
32
|
|
5
33
|
* Remove debug output.
|
data/README.md
CHANGED
@@ -1361,6 +1361,9 @@ RailsOps conveniently provides you with a `model` instance method, which is a
|
|
1361
1361
|
shortcut for `op.model`. This is particularly useful since this is available as
|
1362
1362
|
a view helper method as well, see next section.
|
1363
1363
|
|
1364
|
+
You can check whether a model is available by using the `model?` method, which
|
1365
|
+
is available in both controllers and views.
|
1366
|
+
|
1364
1367
|
### View helper methods
|
1365
1368
|
|
1366
1369
|
The following controller methods are automatically provided as helper methods
|
data/Rakefile
CHANGED
@@ -19,7 +19,7 @@ task :gemspec do
|
|
19
19
|
spec.add_development_dependency 'rake'
|
20
20
|
spec.add_development_dependency 'sqlite3'
|
21
21
|
spec.add_development_dependency 'rubocop', '0.47.1'
|
22
|
-
spec.add_dependency 'active_type', '~>
|
22
|
+
spec.add_dependency 'active_type', '~> 1.3.0'
|
23
23
|
spec.add_dependency 'minitest'
|
24
24
|
spec.add_dependency 'rails'
|
25
25
|
spec.add_dependency 'request_store'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.9
|
@@ -21,6 +21,7 @@ module RailsOps
|
|
21
21
|
included do
|
22
22
|
if defined?(helper_method)
|
23
23
|
helper_method :model
|
24
|
+
helper_method :model?
|
24
25
|
helper_method :op
|
25
26
|
helper_method :op?
|
26
27
|
helper_method :op_context
|
@@ -85,6 +86,10 @@ module RailsOps
|
|
85
86
|
return op.model
|
86
87
|
end
|
87
88
|
|
89
|
+
def model?
|
90
|
+
!!(@model || op? && op.respond_to?(:model) && op.model)
|
91
|
+
end
|
92
|
+
|
88
93
|
# Filters the `params` hash for use with RailsOps. This removes certain
|
89
94
|
# web-specific parameters based on `EXCEPT_PARAMS`.
|
90
95
|
def filter_op_params(params)
|
data/lib/rails_ops/exceptions.rb
CHANGED
data/lib/rails_ops/hookup.rb
CHANGED
data/lib/rails_ops/operation.rb
CHANGED
@@ -107,7 +107,7 @@ class RailsOps::Operation
|
|
107
107
|
# any validation exception.
|
108
108
|
def run!
|
109
109
|
ActiveSupport::Notifications.instrument('run.rails_ops', operation: self) do
|
110
|
-
::RailsOps::Profiler.profile(object_id
|
110
|
+
::RailsOps::Profiler.profile(object_id) do
|
111
111
|
fail 'An operation can only be performed once.' if performed?
|
112
112
|
@performed = true
|
113
113
|
run_policies :before_perform
|
@@ -125,7 +125,12 @@ class RailsOps::Operation
|
|
125
125
|
def inspect
|
126
126
|
inspection = self.class.name || '(AnonymousOp)'
|
127
127
|
if params
|
128
|
-
|
128
|
+
begin
|
129
|
+
inspected_params = inspected_params(filtered_params)
|
130
|
+
rescue
|
131
|
+
inspected_params = '<could not inspect params>'
|
132
|
+
end
|
133
|
+
inspection += " (#{inspected_params})"
|
129
134
|
end
|
130
135
|
return inspection
|
131
136
|
end
|
data/rails_ops.gemspec
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: rails_ops 1.1.
|
2
|
+
# stub: rails_ops 1.1.9 ruby lib
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "rails_ops".freeze
|
6
|
-
s.version = "1.1.
|
6
|
+
s.version = "1.1.9"
|
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 = "2020-
|
11
|
+
s.date = "2020-07-28"
|
12
12
|
s.files = [".gitignore".freeze, ".releaser_config".freeze, ".rubocop.yml".freeze, ".travis.yml".freeze, "CHANGELOG.md".freeze, "Gemfile".freeze, "LICENSE.txt".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".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_casting.rb".freeze, "lib/rails_ops/model_mixins.rb".freeze, "lib/rails_ops/model_mixins/ar_extension.rb".freeze, "lib/rails_ops/model_mixins/parent_op.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/patches/active_type_patch.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/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/application_record.rb".freeze, "test/dummy/app/models/concerns/.keep".freeze, "test/dummy/app/models/group.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/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/mixins/model/nesting.rb".freeze, "test/unit/rails_ops/mixins/policies_test.rb".freeze, "test/unit/rails_ops/operation/model/create_test.rb".freeze, "test/unit/rails_ops/operation/model/load_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_test.rb".freeze]
|
13
13
|
s.rubygems_version = "3.1.2".freeze
|
14
14
|
s.summary = "An operations service layer for rails projects.".freeze
|
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.add_development_dependency(%q<rake>.freeze, [">= 0"])
|
24
24
|
s.add_development_dependency(%q<sqlite3>.freeze, [">= 0"])
|
25
25
|
s.add_development_dependency(%q<rubocop>.freeze, ["= 0.47.1"])
|
26
|
-
s.add_runtime_dependency(%q<active_type>.freeze, ["~>
|
26
|
+
s.add_runtime_dependency(%q<active_type>.freeze, ["~> 1.3.0"])
|
27
27
|
s.add_runtime_dependency(%q<minitest>.freeze, [">= 0"])
|
28
28
|
s.add_runtime_dependency(%q<rails>.freeze, [">= 0"])
|
29
29
|
s.add_runtime_dependency(%q<request_store>.freeze, [">= 0"])
|
@@ -33,7 +33,7 @@ Gem::Specification.new do |s|
|
|
33
33
|
s.add_dependency(%q<rake>.freeze, [">= 0"])
|
34
34
|
s.add_dependency(%q<sqlite3>.freeze, [">= 0"])
|
35
35
|
s.add_dependency(%q<rubocop>.freeze, ["= 0.47.1"])
|
36
|
-
s.add_dependency(%q<active_type>.freeze, ["~>
|
36
|
+
s.add_dependency(%q<active_type>.freeze, ["~> 1.3.0"])
|
37
37
|
s.add_dependency(%q<minitest>.freeze, [">= 0"])
|
38
38
|
s.add_dependency(%q<rails>.freeze, [">= 0"])
|
39
39
|
s.add_dependency(%q<request_store>.freeze, [">= 0"])
|
@@ -150,4 +150,9 @@ class RailsOps::OperationTest < ActiveSupport::TestCase
|
|
150
150
|
assert_equal 'RailsOps::OperationTest::BASIC_OP ({"foo"=>:bar})',
|
151
151
|
BASIC_OP.new(foo: :bar).inspect
|
152
152
|
end
|
153
|
+
|
154
|
+
def test_inspect_with_numeric_param_keys
|
155
|
+
assert_equal 'RailsOps::OperationTest::BASIC_OP ({1=>2})',
|
156
|
+
BASIC_OP.new(1 => 2).inspect
|
157
|
+
end
|
153
158
|
end
|
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.1.
|
4
|
+
version: 1.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sitrox
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-07-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 1.3.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 1.3.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: minitest
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|