module Dry::Validation::Macros::Registrar

Public Instance Methods

register_macro(name, *args, &block) click to toggle source

Register a macro

@example register a global macro

Dry::Validation.register_macro(:even_numbers) do
  key.failure('all numbers must be even') unless values[key_name].all?(&:even?)
end

@example register a contract macro

class MyContract < Dry::Validation::Contract
  register_macro(:even_numbers) do
    key.failure('all numbers must be even') unless values[key_name].all?(&:even?)
  end
end

@param [Symbol] name The name of the macro @param [Array] args Optional default positional arguments for the macro

@return [self]

@see Macro

@api public

# File lib/dry/validation/macros.rb, line 35
def register_macro(name, *args, &block)
  macros.register(name, *args, &block)
  self
end