class Dry::Schema::Macros::Each

Macro used to specify predicates for each element of an array

@api private

Public Instance Methods

ast(*)
Alias for: to_ast
to_ast(*) click to toggle source

@api private

# File lib/dry/schema/macros/each.rb, line 27
def to_ast(*)
  [:each, trace.to_ast]
end
Also aliased as: ast
value(*args, **opts, &block) click to toggle source

@api private

# File lib/dry/schema/macros/each.rb, line 14
def value(*args, **opts, &block)
  extract_type_spec(args, set_type: false) do |*predicates, type_spec:, type_rule:|
    if type_spec && !type_spec.is_a?(Dry::Types::Type)
      type(schema_dsl.array[type_spec])
    end

    append_macro(Macros::Value) do |macro|
      macro.call(*predicates, type_spec: type_spec, type_rule: type_rule, **opts, &block)
    end
  end
end