actionizer 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/README.md +22 -2
- data/actionizer.gemspec +1 -1
- data/lib/actionizer/version.rb +1 -1
- data/lib/actionizer.rb +3 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f469641ab666e35726b4d5947291460f7ee19d4e
|
4
|
+
data.tar.gz: a502b47502c021c1d6a727c5a88dea62426d0d1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa6f99b81e8a95dcb0d58dc02befc7442ffd930c0ff5d119c8b92ec9d91b713da3e972f421443ce8db27f8cbdda3932c2d27d3be2b980b86f71f9d5622581291
|
7
|
+
data.tar.gz: 84ac0753c80f7759acf0281cd9c9d024058a7d7787c5ddbcb705f4998887c26f020637c7822835792bc7d2942fe28a39c061f5546f99720bafaaa3ec2de73859
|
data/.rubocop.yml
CHANGED
@@ -14,12 +14,15 @@ Metrics/MethodLength:
|
|
14
14
|
|
15
15
|
Style/Documentation:
|
16
16
|
Enabled: false
|
17
|
+
|
17
18
|
Style/EmptyLinesAroundBlockBody:
|
18
19
|
Enabled: false
|
19
20
|
Style/EmptyLinesAroundClassBody:
|
20
21
|
Enabled: false
|
21
22
|
Style/FrozenStringLiteralComment:
|
22
23
|
Enabled: false
|
24
|
+
Style/IfUnlessModifier:
|
25
|
+
Enabled: false
|
23
26
|
Style/MutableConstant:
|
24
27
|
Enabled: false
|
25
28
|
Style/NegatedIf:
|
data/README.md
CHANGED
@@ -139,7 +139,7 @@ To more explicitly document the inputs to your Actions, you can use `inputs_for`
|
|
139
139
|
class CreateUser
|
140
140
|
include Actionizer
|
141
141
|
|
142
|
-
inputs_for
|
142
|
+
inputs_for(:call) do
|
143
143
|
required :name
|
144
144
|
required :email
|
145
145
|
optional :phone_number
|
@@ -156,7 +156,27 @@ class CreateUser
|
|
156
156
|
end
|
157
157
|
```
|
158
158
|
|
159
|
-
|
159
|
+
### Specifying types and nullable fields
|
160
|
+
|
161
|
+
You can now also optionally specify types and nullability for your inputs. For the `type:` option, any ruby class can be used.
|
162
|
+
|
163
|
+
```ruby
|
164
|
+
inputs_for(:call) do
|
165
|
+
required :name, type: String, null: false
|
166
|
+
required :email, null: false
|
167
|
+
optional :phone_number, type: Integer
|
168
|
+
end
|
169
|
+
```
|
170
|
+
|
171
|
+
### `inputs_for` error handling
|
172
|
+
|
173
|
+
The action will fail immediately if any of the conditions are met:
|
174
|
+
- Any required param is not passed
|
175
|
+
- A param is passed that is not declared
|
176
|
+
- `nil` is passed for a param marked `null: false` (default is `null: true`)
|
177
|
+
- The class of the argument is not equal to or a subclass of the specified type
|
178
|
+
|
179
|
+
Using an `inputs_for` block is completely opt-in so if you don't provide it, no checking is performed.
|
160
180
|
|
161
181
|
## Development
|
162
182
|
|
data/actionizer.gemspec
CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_development_dependency 'rake', '~> 11.3'
|
33
33
|
spec.add_development_dependency 'rspec', '~> 3.5'
|
34
34
|
spec.add_development_dependency 'pry-byebug', '~> 3.4'
|
35
|
-
spec.add_development_dependency 'rubocop', '
|
35
|
+
spec.add_development_dependency 'rubocop', '0.45.0'
|
36
36
|
spec.add_development_dependency 'simplecov', '~> 0.12'
|
37
37
|
spec.add_development_dependency 'codeclimate-test-reporter', '~> 0.5'
|
38
38
|
end
|
data/lib/actionizer/version.rb
CHANGED
data/lib/actionizer.rb
CHANGED
@@ -17,7 +17,9 @@ module Actionizer
|
|
17
17
|
|
18
18
|
if instance.respond_to?(method_name)
|
19
19
|
error = defined_inputs.check_for_param_error(method_name, *args)
|
20
|
-
|
20
|
+
if error
|
21
|
+
return Actionizer::Result.new(error: error).tap(&:fail)
|
22
|
+
end
|
21
23
|
|
22
24
|
instance.tap(&method_name).output
|
23
25
|
else
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: actionizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Nichols
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -70,16 +70,16 @@ dependencies:
|
|
70
70
|
name: rubocop
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - '='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 0.45.0
|
76
76
|
type: :development
|
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: 0.45.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: simplecov
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|