Skip to content

class Athena::Validator::Constraints::NotNil
inherits Athena::Validator::Constraint #

Validates that a value is not nil.

Note

Due to Crystal's static typing, when validating objects the property's type must be nilable, otherwise nil is inherently not allowed due to the compiler's type checking.

class Post
  include AVD::Validatable

  def initialize(@title : String?, @description : String?); end

  @[Assert::NotNil]
  property title : String?

  @[Assert::NotNil]
  property description : String?
end

Configuration#

Optional Arguments#

message#

Type: String Default: This value should not be null.

The message that will be shown if the value is nil.

Placeholders#

The following placeholders can be used in this message:

  • {{ value }} - The current (invalid) value.

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.

Constants#

IS_NIL_ERROR = "c7e77b14-744e-44c0-aa7e-391c69cc335c"#

Constructors#

.new(message : String = "This value should not be null.", groups : Array(String) | String | Nil = nil, payload : Hash(String, String) | Nil = nil)#

Methods#

#validated_by : AVD::ConstraintValidator.class#

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