class Athena::Validator::Constraints::ISBN
Overview
Validates that an International Standard Book Number (ISBN) is either a valid ISBN-10
or ISBN-13
.
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
type
Type: AVD::Constraints::ISBN::Type
Default: AVD::Constraints::ISBN::Type::Both
Type of ISBN to validate against.
message
Type: String
Default: ""
The message that will be shown if the value is invalid. This message has priority over the other messages if not empty.
Placeholders
The following placeholders can be used in this message:
{{ value }}
- The current (invalid) value.
isbn10_message
Type: String
Default: This value is not a valid ISBN-10.
The message that will be shown if type is AVD::Constraints::ISBN::Type::ISBN10
and the value is invalid.
Placeholders
The following placeholders can be used in this message:
{{ value }}
- The current (invalid) value.
isbn13_message
Type: String
Default: This value is not a valid ISBN-13.
The message that will be shown if type is AVD::Constraints::ISBN::Type::ISBN13
and the value is invalid.
Placeholders
The following placeholders can be used in this message:
{{ value }}
- The current (invalid) value.
both_message
Type: String
Default: This value is neither a valid ISBN-10 nor a valid ISBN-13.
The message that will be shown if type is AVD::Constraints::ISBN::Type::Both
and the value is invalid.
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][Athena::Validator::Constraint--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][Athena::Validator::Constraint--payload] is not used by Athena::Validator
, but its processing is completely up to you.
Defined in:
constraints/isbn.crConstant Summary
-
CHECKSUM_FAILED_ERROR =
"f51bae62-6833-43b1-bc27-ae4445c59e30"
-
INVALID_CHARACTERS_ERROR =
"25d35907-d822-4bcc-82cc-852e30c89c0d"
-
TOO_LONG_ERROR =
"ebd28c75-bb42-43d6-9053-f0ea2ea93d44"
-
TOO_SHORT_ERROR =
"5da9e91f-7956-40f7-9788-4124463d783e"
-
TYPE_NOT_RECOGNIZED_ERROR =
"8d83f04d-2503-4547-97a1-935fcccd1ae1"
Constructors
Instance Method Summary
- #both_message : String
- #isbn10_message : String
- #isbn13_message : String
-
#message : String
Returns the message that should be rendered if
self
is found to be invalid. - #type : AVD::Constraints::ISBN::Type
-
#validated_by : AVD::ConstraintValidator.class
Returns the
AVD::ConstraintValidator.class
that should handle validatingself
.
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) | Nil
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 = nil)
new
Class methods inherited from class Athena::Validator::Constraint
error_name(error_code : String) : String
error_name
Constructor Detail
Instance Method Detail
Returns the message that should be rendered if self
is found to be invalid.
NOTE Some subtypes do not use this and instead define multiple message properties in order to support more specific error messages.
Returns the AVD::ConstraintValidator.class
that should handle validating self
.