26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/schemacop/v3/one_of_node.rb', line 26
def _validate(data, result:)
if options[:treat_blank_as_nil] && data.blank? && !data.is_a?(FalseClass)
data = nil
end
super_data = super(data, result: result)
return if super_data.nil?
matches = matches(super_data)
if matches.size == 1
matches.first._validate(super_data, result: result)
else
result.error <<~PLAIN.strip
Matches #{matches.size} schemas but should match exactly 1:
#{schema_messages(data).join("\n")}
PLAIN
end
end
|