parametric 0.2.5 → 0.2.6
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 +4 -4
- data/README.md +13 -0
- data/lib/parametric/field.rb +1 -1
- data/lib/parametric/policies.rb +10 -0
- data/lib/parametric/version.rb +1 -1
- data/spec/field_spec.rb +18 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aae28a677e19d7f7f3ba7643cd6500f15e148091569b52297fca50505705b4c0
|
4
|
+
data.tar.gz: a5a9a5b21cc043f846afffee551e35e58842cd14fe07a99c6c8661bc0f7ef35d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e1b3c63ffd393ef506bc82538f03f535f996ca3018a583e8e3f86ccb41ceec375de460b6b5b137011ffa248ed9eef534613a77e069b443cc3da37e2e57b9e5be
|
7
|
+
data.tar.gz: 8e3ab7a3d282962b147d44ca822d93b22a98f14111ce860d217d35c0a81d44e621b11c7cf13d471fdec3c5e4f0def860a11edb241f8a98dda48b164ff27c2c80
|
data/README.md
CHANGED
@@ -211,6 +211,19 @@ field(:name).declared.present
|
|
211
211
|
```
|
212
212
|
|
213
213
|
The example above will check that the value is not empty, but only if the key exists. If the key doesn't exist no validations will run.
|
214
|
+
Note that any defaults will still be returned.
|
215
|
+
|
216
|
+
```ruby
|
217
|
+
field(:name).declared.present.default('return this')
|
218
|
+
```
|
219
|
+
|
220
|
+
### :declared_no_default
|
221
|
+
|
222
|
+
Like `:declared`, it stops the policy chain if a key is not in input, but it also skips any default value.
|
223
|
+
|
224
|
+
```ruby
|
225
|
+
field(:name).policy(:declared_no_default).present
|
226
|
+
```
|
214
227
|
|
215
228
|
### :gt
|
216
229
|
|
data/lib/parametric/field.rb
CHANGED
data/lib/parametric/policies.rb
CHANGED
@@ -44,6 +44,16 @@ module Parametric
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
+
Parametric.policy :declared_no_default do
|
48
|
+
eligible do |value, key, payload|
|
49
|
+
payload.key? key
|
50
|
+
end
|
51
|
+
|
52
|
+
meta_data do
|
53
|
+
{skip_default: true}
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
47
57
|
Parametric.policy :required do
|
48
58
|
message do |*|
|
49
59
|
"is required"
|
data/lib/parametric/version.rb
CHANGED
data/spec/field_spec.rb
CHANGED
@@ -266,6 +266,24 @@ describe Parametric::Field do
|
|
266
266
|
expect(r.value).to eq nil
|
267
267
|
end
|
268
268
|
end
|
269
|
+
|
270
|
+
it "returns default" do
|
271
|
+
resolve(subject.policy(:declared).default('aa'), foo: "").tap do |r|
|
272
|
+
expect(r.eligible?).to be true
|
273
|
+
no_errors
|
274
|
+
expect(r.value).to eq 'aa'
|
275
|
+
end
|
276
|
+
end
|
277
|
+
end
|
278
|
+
|
279
|
+
describe ':declared_no_default' do
|
280
|
+
it "does not return default" do
|
281
|
+
resolve(subject.policy(:declared_no_default).default('aa'), lala: "").tap do |r|
|
282
|
+
expect(r.eligible?).to be false
|
283
|
+
no_errors
|
284
|
+
expect(r.value).to eq nil
|
285
|
+
end
|
286
|
+
end
|
269
287
|
end
|
270
288
|
|
271
289
|
describe ":noop policy" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parametric
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ismael Celis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|