lib/dry/validation/rule.rb in dry-validation-1.8.0 vs lib/dry/validation/rule.rb in dry-validation-1.8.1
- old
+ new
@@ -74,17 +74,19 @@
# end
#
# @return [Rule]
#
# @api public
+ #
+ # rubocop:disable Metrics/AbcSize
def each(*macros, &block)
root = keys[0]
macros = parse_macros(*macros)
@keys = []
@block = proc do
- unless result.base_error?(root) || !values.key?(root)
+ unless result.base_error?(root) || !values.key?(root) || values[root].nil?
values[root].each_with_index do |_, idx|
path = [*Schema::Path[root].to_a, idx]
next if result.schema_error?(path)
@@ -97,9 +99,10 @@
@block_options = map_keywords(block) if block
self
end
+ # rubocop:enable Metrics/AbcSize
# Return a nice string representation
#
# @return [String]
#