Skip to content

IP

class Athena::Validator::Constraints::IP
inherits Athena::Validator::Constraint

Validates that a value is a valid IP address. By default validates the value as an IPv4 address, but can be customized to validate IPv6s, or both. The underlying value is converted to a string via #to_s before being validated.

NOTE: As with most other constraints, nil and empty strings are considered valid values, in order to allow the value to be optional. If the value is required, consider combining this constraint with AVD::Constraints::NotBlank.

Configuration

Optional Arguments
version

Type: AVD::Constraints::IP::Version Default: AVD::Constraints::IP::Version::V4

Defines the pattern that should be used to validate the IP address.

message

Type: String Default: This is not a valid IP address.

The message that will be shown if the value is not a valid IP address.

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

INVALID_IP_ERROR = "326b0aa4-3871-404d-986d-fe3e6c82005c"

Class methods

.new(version : AVD::Constraints::IP::Version = :v4, message : String = "This value is not a valid IP address.", groups : Array(String) | String | Nil = nil, payload : Hash(String, String)? = nil)

Methods

#validated_by : AVD::ConstraintValidator.class

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