class Athena::Validator::Constraints::All

Overview

Validates each element of an Iterable is valid based on a collection of constraints.

Configuration

Required Arguments

constraints

Type: Array(AVD::Constraint) | AVD::Constraint

The AVD::Constraint(s) that you want to apply to each element of the underlying iterable.

Optional Arguments

NOTE This constraint does not support a message argument.

groups

Type: Array(String) | String | Nil Default: nil

The validation groups this constraint belongs to. AVD::Constraint::DEFAULT_GROUP is assumed if nil.

payload

Type: Hash(String, String)? Default: nil

Any arbitrary domain-specific data that should be stored with this constraint. The payload is not used by Athena::Validator, but its processing is completely up to you.

Usage

class Example
  include AVD::Validatable

  def initialize(@strings : Array(String)); end

  # Assert each string is not blank and is at least 5 characters long.
  @[Assert::All([
    @[Assert::NotBlank],
    @[Assert::Size(5..)],
  ])]
  getter strings : Array(String)
end

NOTE The annotation approach only supports two levels of nested annotations. Manually wire up the constraint via code if you require more than that.

Defined in:

constraints/all.cr

Constructors

Instance Method Summary

Instance methods inherited from class Athena::Validator::Constraints::Composite

add_implicit_group(group : String) : Nil add_implicit_group, constraints : Array(AVD::Constraint) constraints

Constructor methods inherited from class Athena::Validator::Constraints::Composite

new(constraints : Array(AVD::Constraint) | AVD::Constraint, message : String, groups : Array(String) | String | Nil = nil, payload : Hash(String, String)? = nil) new

Instance methods inherited from class Athena::Validator::Constraint

add_implicit_group(group : String) : Nil add_implicit_group, groups : Array(String) groups, groups=(groups : Array(String)) groups=, message : String message, payload : Hash(String, String)? payload, validated_by : AVD::ConstraintValidator.class validated_by

Constructor methods inherited from class Athena::Validator::Constraint

new(message : String, groups : Array(String) | String | Nil = nil, payload : Hash(String, String)? = nil) new

Class methods inherited from class Athena::Validator::Constraint

error_name(error_code : String) : String error_name

Constructor Detail

def self.new(constraints : Array(AVD::Constraint) | AVD::Constraint, groups : Array(String) | String | Nil = nil, payload : Hash(String, String)? = nil) #

[View source]

Instance Method Detail

def validated_by : AVD::ConstraintValidator.class #

Returns the AVD::ConstraintValidator.class that should handle validating self.


[View source]