dry-mutations 0.11.1 → 0.99.0
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/.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.
|