module

ActiveModel::Validations

Class methods

register_validator(key : String, klass : EachValidator.class) : Nil
validator_for(key : String) : EachValidator.class

Instance methods

__integer_value?(value : Value) : Bool
__to_number(value : Value) : Float64 | Nil

Numeric coercion for numericality: String "4.5" IS a number (gem parses strings), true/nil are not.

__validation_on?(context : Symbol, on : Symbol | Array(Symbol)) : Bool
errors
invalid?(context : Symbol | Nil = nil) : Bool
valid?(context : Symbol | Nil = nil) : Bool

Macros

__plant_validation_base

Base dispatcher planted on first DSL use (macro finished does NOT run for including classes in Crystal 1.21 — see PLAN.md; each DSL call chains onto the previous definition via previous_def).

validate(method_name = nil, &block)

Custom validations: validate :check_name or validate do ... end.

validates(*columns, presence = nil, absence = nil, length = nil, numericality = nil, format = nil, inclusion = nil, exclusion = nil, acceptance = nil, confirmation = nil, on = nil, strict = false, allow_nil = false, allow_blank = false, condition = nil, unless_condition = nil, **other)

--- DSL ------------------------------------------------------------- validates :title, presence: true, length: {minimum: 2, maximum: 5} validates :age, numericality: {only_integer: true, greater_than: 5} validates :email, format: {with: /.../}, inclusion: {in: [...]}, exclusion: {in: [...]}, acceptance: true, confirmation: true ... on: :update, strict: true, condition: :method, unless_condition: :method Custom validators: any other kwarg → registry lookup by name.

validates!(*columns, **opts)

validates! — strict version (raises StrictValidationFailed on invalid? — oracle val_strict_raise).