lib/dry/schema/macros/each.rb in dry-schema-1.1.0 vs lib/dry/schema/macros/each.rb in dry-schema-1.2.0
- old
+ new
@@ -1,7 +1,8 @@
# frozen_string_literal: true
+require 'dry/types/type'
require 'dry/schema/macros/dsl'
module Dry
module Schema
module Macros
@@ -10,10 +11,12 @@
# @api private
class Each < DSL
# @api private
def value(*args, **opts)
extract_type_spec(*args, set_type: false) do |*predicates, type_spec:|
- type(schema_dsl.array[type_spec]) if type_spec
+ if type_spec && !type_spec.is_a?(Dry::Types::Type)
+ type(schema_dsl.array[type_spec])
+ end
super(*predicates, type_spec: type_spec, **opts)
end
end