dry-mutations 0.11.1 → 0.99.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/config/messages.yml +1 -0
- data/lib/dry/mutations/extensions/command.rb +34 -1
- data/lib/dry/mutations/predicates.rb +2 -1
- data/lib/dry/mutations/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3283bff6b56af17bcf225925ddf1f408fa7b4c68
|
4
|
+
data.tar.gz: a570341fa4d2a15633a09db13a7a5fe24129c273
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 228250b33066d8c6bac1b8a7319bbf95619243aa0a070b350faf6db34962df2926e3194d58e92f17c27c7932cea3d7fd15db8ca48056c9bdc28e53114de45499
|
7
|
+
data.tar.gz: a6ffb1ffab92b3a109959806c2e1a2e70cdac4b85b9a46dea86bb934141c7eac04d3b855e9980b815a9b9c21b191db4be4c6d3d93ecb9dd77b1f103474ed236c
|
data/.travis.yml
CHANGED
data/config/messages.yml
CHANGED
@@ -35,7 +35,7 @@ module Dry
|
|
35
35
|
attr_reader :validation
|
36
36
|
|
37
37
|
def initialize(*args)
|
38
|
-
@raw_inputs = Utils.RawInputs(*args)
|
38
|
+
@raw_inputs = defaults.merge Utils.RawInputs(*args)
|
39
39
|
|
40
40
|
@validation_result = discard_empty!
|
41
41
|
|
@@ -130,6 +130,39 @@ module Dry
|
|
130
130
|
def schema
|
131
131
|
@schema ||= self.class.schema
|
132
132
|
end
|
133
|
+
|
134
|
+
def predicates(input, digged = [])
|
135
|
+
case input
|
136
|
+
when Dry::Logic::Rule::Predicate then digged << input
|
137
|
+
when Array then input.each { |e| predicates(e, digged) }
|
138
|
+
when ->(i) { i.respond_to?(:rules) }
|
139
|
+
predicates(input.rules, digged)
|
140
|
+
end
|
141
|
+
digged
|
142
|
+
end
|
143
|
+
|
144
|
+
def dig(predicate, input = schema)
|
145
|
+
case input.rules
|
146
|
+
when Hash # the whole schema
|
147
|
+
input.rules.map do |k, v|
|
148
|
+
pred = predicates(v).detect do |p|
|
149
|
+
p.respond_to?(:predicate) && (p = p.predicate).is_a?(Method) && "#{p.owner}##{p.name}" == predicate
|
150
|
+
end
|
151
|
+
pred ? [k, pred] : nil
|
152
|
+
end.compact.to_h
|
153
|
+
else
|
154
|
+
predicates(input).detect { |p| "#{p.owner}##{p.name}" == predicate }
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
def defaults
|
159
|
+
::Dry::Mutations::Utils.Hash(
|
160
|
+
dig('#<Class:Dry::Mutations::Predicates>#default?').map do |k, v|
|
161
|
+
next unless v.respond_to?(:options) && v.options[:args]
|
162
|
+
[k, v.options[:args].first]
|
163
|
+
end.compact.to_h
|
164
|
+
)
|
165
|
+
end
|
133
166
|
end
|
134
167
|
end
|
135
168
|
end
|
@@ -8,7 +8,8 @@ module Dry
|
|
8
8
|
end
|
9
9
|
|
10
10
|
predicate(:default?) do |_expected, _current|
|
11
|
-
|
11
|
+
true
|
12
|
+
# fail Errors::TypeError, "“default” guard is not implemented yet in dry-mutations, sorry for that."
|
12
13
|
end
|
13
14
|
|
14
15
|
# FIXME: at the moment this is an exact equivalent of :type? => User
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dry-mutations
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.99.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aleksei Matiushkin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -390,7 +390,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
390
390
|
version: '0'
|
391
391
|
requirements: []
|
392
392
|
rubyforge_project:
|
393
|
-
rubygems_version: 2.4.
|
393
|
+
rubygems_version: 2.4.8
|
394
394
|
signing_key:
|
395
395
|
specification_version: 4
|
396
396
|
summary: Mutations gem interface implemented with `dry-rb`’s validation schemas.
|