diff --git a/docs/Check/CheckableStatic.html b/docs/Check/CheckableStatic.html index ea57c80..21b6ac0 100644 --- a/docs/Check/CheckableStatic.html +++ b/docs/Check/CheckableStatic.html @@ -242,7 +242,14 @@
Returns a Hash
from a JSON input.
Returns a json Hash
from a JSON input.
Returns a json Hash
from a JSON input.
Returns a Hash
from a JSON input.
+
Returns a json Hash
from a JSON input.
The return type is a tuple with a bool as a first argument indicating
that the JSON.parse
has been processed successfully or not and the 2nd
argument is the json Hash.
Returns a json Hash
from a JSON input.
+Same as #h_from_json
, except that this method raises a JSON::ParseException
if the conversion fails.
user_h = User.h_from_json!(json) # => {"username" => "Bob", "email" => "user@example.com"}
+ An (optional) expressive flavor of Validator
(or Valid
alias).
Same as is
but raise
a Validator::Error
displaying an inspection if the validation is false
.
Standalone check module that provides a practical workflow for validations.
","class_methods":[{"id":"new_validation(errors:Errors)-class-method","html_id":"new_validation(errors:Errors)-class-method","name":"new_validation","doc":"Initializes a new `Validation` instance to combine\na series of checks (`Validation#check`).\nusing an existing *errors* `Hash` (`Check::Errors`).\n\n```\nv = Check.new_validation existing_errors\n```\n\nSame as:\n\n```\nv = Check::Validation.new existing_errors\n```\n\nExample to combine two hashes of validation errors:\n\n```\npreview_validation = Check.new_validation\nv = Check.new_validation preview_validation.errors\n```","summary":"Initializes a new Validation
instance to combine a series of checks (Validation#check
).
Initializes a new Validation
instance to combine a series of checks (Validation#check
).
A mixin to make a class checkable.
","abstract":false,"args":[],"args_string":"","location":{"filename":"src/checkable.cr","line_number":69,"url":null},"def":{"name":"checkable","args":[],"double_splat":null,"splat_index":null,"block_arg":null,"visibility":"Public","body":" include Check::Prop\n include Check::Checkable\n \nextend Check::CheckableStatic\n \n"}},{"id":"rules(**fields)-macro","html_id":"rules(**fields)-macro","name":"rules","doc":"Generates `check`, `check_{{field}}` and `clean_{{field}}` methods for *fields* (class variables).\n\n```\nrequire \"validator/check\"\n\nclass Article\n # Mixin\n Check.checkable\n\n property title : String\n property content : String\n property url : String?\n\n private def self.after_check_content(v : Check::Validation, content : String?, required : Bool, format : Bool)\n puts \"after_check_content\"\n puts \"Valid? #{v.valid?}\"\n content\n end\n\n Check.rules(\n content: {\n required: \"Content is required\", # or `true` to use the default error message\n before_check: ->(v : Check::Validation, content : String?, required : Bool, format : Bool) {\n puts \"before_check_content\"\n content\n },\n after_check: :after_check_email,\n check: {\n not_empty: {\"Article content is required\"},\n between: {\"The article content must be between 10 and 20 000 characters\", 10, 20_000},\n # ...\n },\n clean: {\n type: String,\n to: :to_s,\n # Proc or method name (Symbol)\n format: ->(content : String) { content.strip },\n message: \"Wrong type\",\n },\n },\n url: {\n check: {\n url: {\"Article URL is invalid\"},\n },\n clean: {\n # `nilable` means omited if not provided,\n # regardless of Crystal type (nilable or not)\n nilable: true,\n # Crystal type\n type: String,\n # Converter to the expected typed value\n to: :to_s,\n },\n },\n # ...\n)\nend\n\n# Triggered on all data\nv, article = Article.check(input_data)\n\n# Triggered on all fields of an instance\narticle = Article.new(title: \"foo\", content: \"bar\")\nv = article.check\n\n# Triggered on a value\nv, content = Article.check_content(input_data[\"content\"]?)\n\n# Cast and clean a value\nok, content = Article.clean_content(input_data[\"content\"]?)\n```\n\nSee also `Check.checkable`.","summary":"Generates check
, check_{{field}}
and clean_{{field}}
methods for fields (class variables).
Mixin that adds #check
method to be used with variables of an instance of the class including it.
Lifecycle method triggered after each call of #check
.
Lifecycle method triggered before each call of #check
.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Checks the instance fields and clean them.
","abstract":false,"args":[{"name":"v","doc":null,"default_value":"","external_name":"v","restriction":"Check::Validation"},{"name":"required","doc":null,"default_value":"true","external_name":"required","restriction":"Bool"},{"name":"format","doc":null,"default_value":"true","external_name":"format","restriction":"Bool"}],"args_string":"(v : Check::Validation, required : Bool = true, format : Bool = true) : Validation","args_html":"(v : Check::Validation, required : Bool = true, format : Bool = true) : Validation","location":{"filename":"src/checkable.cr","line_number":618,"url":null},"def":{"name":"check","args":[{"name":"v","doc":null,"default_value":"","external_name":"v","restriction":"Check::Validation"},{"name":"required","doc":null,"default_value":"true","external_name":"required","restriction":"Bool"},{"name":"format","doc":null,"default_value":"true","external_name":"format","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"{% if true %}\n\n # Call lifecycle method before check\n before_check v, required, format\n\n # Check all fields that have a method `#check_{field}`\n {% for ivar in @type.instance_vars.select do |ivar|\n @type.class.has_method?(\"check_#{ivar}\")\nend %}\n v, value = self.class.check_{{ ivar.name }}(v, {{ ivar.name }}, required, format)\n\n # If the field is not nilable and the value is nil,\n # it means that the clean method has failed\n # (to cast or an exception has been raised (and catched) in the formatter)\n # So ignore the nil value if the field is not nilable\n @{{ ivar.name }} = value.as({{ ivar.type }}) {% if !ivar.type.nilable? %} unless value.nil? {% end %}\n {% end %}\n\n # Check methods with `Check::Checker` annotation\n {% for method in @type.methods.select(&.annotation(Checker)) %}\n {{ method.name }} v, required, format\n {% end %}\n\n # Call lifecycle method `#after_check`\n after_check v, required, format\n\n v\n {% end %}"}},{"id":"check!(required:Bool=true,format:Bool=true):self-instance-method","html_id":"check!(required:Bool=true,format:Bool=true):self-instance-method","name":"check!","doc":"Same as `check` but this method raises a `Check::ValidationError`\nif the validation fails or if the clean has not been processed successfully.\n\n```\nmyCheckable.check! # => Returns the current instance.\n```\n\nThis method returns `self`, so it chainable :)\n\n```\nuser.email = \"me@example.org\"\nuser.check!.save\n```","summary":"Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Mixin that adds .check
method to be used with a Hash
.
Lifecycle method triggered after each call of .check
.
Lifecycle method triggered before each call of .check
.
Checks and clean the Hash
for its fields corresponding to class variables that have a .check_{{field}}
method.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Returns a Hash
from a JSON input.
Macro that returns the mapping of the JSON fields
","abstract":false,"args":[],"args_string":" : Hash(String, String)","args_html":" : Hash(String, String)","location":{"filename":"src/checkable.cr","line_number":374,"url":null},"def":{"name":"map_json_keys","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Hash(String, String)","visibility":"Public","body":"map = {} of String => String\n{% if true %}\n {% for ivar in @type.instance_vars %}\n {% ann = ivar.annotation(::JSON::Field) %}\n {% if ann && ann[:ignore] %}{% else %}\n map[{{ ((ann && ann[:key]) || ivar).id.stringify }}] = {{ ivar.id.stringify }}\n {% end %}\n {% end %}\n {% end %}\nmap\n"}},{"id":"to_crystal_h(h:Hash):Hash-instance-method","html_id":"to_crystal_h(h:Hash):Hash-instance-method","name":"to_crystal_h","doc":"Returns a new `Hash` with all JSON keys converted to Crystal keys.","summary":"Returns a new Hash
with all JSON keys converted to Crystal keys.
Returns a new Hash
with all Crystal keys converted to JSON keys.
Declare a method as a checker.
","class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[]},{"html_id":"validator/Check/Errors","path":"Check/Errors.html","kind":"alias","full_name":"Check::Errors","name":"Errors","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/check.cr","line_number":19,"url":null}],"repository_name":"validator","program":false,"enum":false,"alias":true,"aliased":"Hash(String | Symbol, Array(String))","aliased_html":"Hash(String | Symbol, Array(String))","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"validator/Check","kind":"module","full_name":"Check","name":"Check"},"doc":"Validation errors.\nIt's a `Hash` used as a container of errors, in order to handle them easily.\n\n```\nv = Check.new_validation\npp v.errors\n```","summary":"Validation errors.
","class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[]},{"html_id":"validator/Check/Prop","path":"Check/Prop.html","kind":"module","full_name":"Check::Prop","name":"Prop","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/checkable.cr","line_number":77,"url":null}],"repository_name":"validator","program":false,"enum":false,"alias":false,"aliased":null,"aliased_html":null,"const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"validator/Check","kind":"module","full_name":"Check","name":"Check"},"doc":"A mixin to make the `getter` macro of the Crystal std's,\nable to support the rules definition and factory block.","summary":"A mixin to make the getter
macro of the Crystal std's, able to support the rules definition and factory block.
Combines a series of checks into one validation instance, with a customized error message for each case.
","class_methods":[],"constructors":[{"id":"new(errors:Errors)-class-method","html_id":"new(errors:Errors)-class-method","name":"new","doc":"Initializes a validation using an existing *errors* `Hash` (`Check::Errors`).\n\n```\nv = Check::Validation.new\n```\n\nSame as:\n\n```\nv = Check.new_validation\n```","summary":"Initializes a validation using an existing errors Hash
(Check::Errors
).
Initializes a validation.
","abstract":false,"args":[],"args_string":"","args_html":"","location":{"filename":"src/check.cr","line_number":166,"url":null},"def":{"name":"new","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"add_error(key:Symbol|String,message:String):Validation-instance-method","html_id":"add_error(key:Symbol|String,message:String):Validation-instance-method","name":"add_error","doc":"Add a validation error.\n\n```\nv = Check.new_validation\nv.add_error(:foo, \"Foo error!\")\npp v.errors # => {:foo => [\"Foo error!\"]}\n```\n\nSee also: `Errors`","summary":"Add a validation error.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"args_string":"(key : Symbol | String, message : String) : Validation","args_html":"(key : Symbol | String, message : String) : Validation","location":{"filename":"src/check.cr","line_number":204,"url":null},"def":{"name":"add_error","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if message.blank?\n message = \"\\\"#{key}\\\" is not valid.\"\nend\nif @errors.has_key?(key)\nelse\n @errors[key] = Array(String).new\nend\n@errors[key] << message\nself\n"}},{"id":"add_error(key:Symbol|String):Validation-instance-method","html_id":"add_error(key:Symbol|String):Validation-instance-method","name":"add_error","doc":"Add a validation error.\n\n> By default a standard message is used.\n\n```\nv = Check.new_validation\nv.add_error(:foo)\npp v.errors # => {:foo => [\"\\\"foo\\\" is not valid.\"]}\n```\n\nSee also: `Errors`","summary":"Add a validation error.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"}],"args_string":"(key : Symbol | String) : Validation","args_html":"(key : Symbol | String) : Validation","location":{"filename":"src/check.cr","line_number":224,"url":null},"def":{"name":"add_error","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"add_error(key, \"\")\nself\n"}},{"id":"check(key:Symbol|String,message:String,valid:Bool):Validation-instance-method","html_id":"check(key:Symbol|String,message:String,valid:Bool):Validation-instance-method","name":"check","doc":"Checks a validation, often used in sequence.\n\nIf *valid* is `false`, the error *message* is added in the `errors`.\nNothing if *valid* is `true`.\n\n```\nv = Check.new_validation\n\n# -- email\n\nv.check :email, \"The email is required.\", is :presence?, :email, user\nv.check :email, \"#{user[:email]} is an invalid email.\", is :email?, user[:email]?\n\n# -- username\n\nv.check :username, \"The username is required.\", is :presence?, :username, user\n\nv.check(\n :username,\n \"The username must contain at least 2 characters.\",\n is :min?, user[:username]?, 2\n)\n\nv.check(\n :username,\n \"The username must contain a maximum of 20 characters.\",\n is :max?, user[:username]?, 20\n)\n\n# Print all errors\npp v.errors\n```","summary":"Checks a validation, often used in sequence.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"args_string":"(key : Symbol | String, message : String, valid : Bool) : Validation","args_html":"(key : Symbol | String, message : String, valid : Bool) : Validation","location":{"filename":"src/check.cr","line_number":272,"url":null},"def":{"name":"check","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if valid\nelse\n add_error(key, message)\nend\nself\n"}},{"id":"check(key:Symbol|String,valid:Bool,message:String):Validation-instance-method","html_id":"check(key:Symbol|String,valid:Bool,message:String):Validation-instance-method","name":"check","doc":"Checks a validation, often used in sequence.\n\nIf *valid* is `false`, the error *message* is added in the `errors`.\nNothing if *valid* is `true`.\n\n```\nv = Check.new_validation\n\n# -- email\n\nv.check(:email, is(:presence?, :email, user), \"The email is required.\")\nv.check(:email, is(:email?, user[:email]?), \"#{user[:email]} is an invalid email.\")\n\n# -- username\n\nv.check(:username, is(:presence?, :username, user), \"The username is required.\")\n\nv.check(\n :username,\n is :min?, user[:username]?, 2,\n \"The username must contain at least 2 characters.\"\n)\n\nv.check(\n :username,\n is :max?, user[:username]?, 20,\n \"The username must contain a maximum of 20 characters.\"\n)\n\n# Print all errors\npp v.errors\n```","summary":"Checks a validation, often used in sequence.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"args_string":"(key : Symbol | String, valid : Bool, message : String) : Validation","args_html":"(key : Symbol | String, valid : Bool, message : String) : Validation","location":{"filename":"src/check.cr","line_number":309,"url":null},"def":{"name":"check","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if valid\nelse\n add_error(key, message)\nend\nself\n"}},{"id":"check(key:Symbol|String,valid:Bool):Validation-instance-method","html_id":"check(key:Symbol|String,valid:Bool):Validation-instance-method","name":"check","doc":"Checks a validation, often used in sequence.\n\nIf *valid* is `false`, an error message is added in the `errors`.\nNothing if *valid* is `true`.\n\n> Unlike other `check` methods, with this one a default standard message is used.\n\n```\nv = Check.new_validation\n\nv.check(\"email\", Valid.presence?(\"email\", user))\nv.check(\"email\", Valid.email?(user[\"email\"]?))\n\n# Print all errors\npp v.errors\n```","summary":"Checks a validation, often used in sequence.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"args_string":"(key : Symbol | String, valid : Bool) : Validation","args_html":"(key : Symbol | String, valid : Bool) : Validation","location":{"filename":"src/check.cr","line_number":330,"url":null},"def":{"name":"check","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if valid\nelse\n add_error(key, \"\")\nend\nself\n"}},{"id":"errors:Errors-instance-method","html_id":"errors:Errors-instance-method","name":"errors","doc":"Errors container.\n\n```\nv = Check.new_validation\npp v.errors\n```","summary":"Errors container.
","abstract":false,"args":[],"args_string":" : Errors","args_html":" : Errors","location":{"filename":"src/check.cr","line_number":191,"url":null},"def":{"name":"errors","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Errors","visibility":"Public","body":"@errors"}},{"id":"to_exception-instance-method","html_id":"to_exception-instance-method","name":"to_exception","doc":"Creates a new instance of `ValidationError` (`Exception`).","summary":"Creates a new instance of ValidationError
(Exception
).
Returns true
if there is no error, false
if there is one or more errors.
Validation error.
","class_methods":[],"constructors":[{"id":"new(errors:Errors,message="Validationerror")-class-method","html_id":"new(errors:Errors,message="Validationerror")-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[{"name":"errors","doc":null,"default_value":"","external_name":"errors","restriction":"Errors"},{"name":"message","doc":null,"default_value":"\"Validation error\"","external_name":"message","restriction":""}],"args_string":"(errors : Errors, message = "Validation error")","args_html":"(errors : Errors, message = "Validation error")","location":{"filename":"src/check.cr","line_number":24,"url":null},"def":{"name":"new","args":[{"name":"errors","doc":null,"default_value":"","external_name":"errors","restriction":"Errors"},{"name":"message","doc":null,"default_value":"\"Validation error\"","external_name":"message","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize(errors, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"errors:Errors-instance-method","html_id":"errors:Errors-instance-method","name":"errors","doc":"Returns `Errors` container (`Hash`).","summary":"Returns Errors
container (Hash
).
Alias of Validator
∠(・.-)―〉 →◎ validator
is a Crystal data validation module.
Validates the absence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : String | Symbol, list : NamedTuple) : Bool","args_html":"(key : String | Symbol, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":47,"url":null},"def":{"name":"absence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.empty?(list[key]?)"}},{"id":"absence?(key:String|Symbol|Number,list:Hash):Bool-class-method","html_id":"absence?(key:String|Symbol|Number,list:Hash):Bool-class-method","name":"absence?","doc":"Validates the absence of the value.\n- See also `#not_in?`.\n- See also `#empty?`.","summary":"Validates the absence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : String | Symbol | Number, list : Hash) : Bool","args_html":"(key : String | Symbol | Number, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":42,"url":null},"def":{"name":"absence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.empty?(list[key]?)"}},{"id":"accepted?(value:String):Bool-class-method","html_id":"accepted?(value:String):Bool-class-method","name":"accepted?","doc":"Validates that the *value* `String` is the representation of an acceptance.\n> One of: \"yes\", \"y\", \"on\", \"o\", \"ok\", \"1\", \"true\"\n- See also `#refused?`.","summary":"Validates that the value String
is the representation of an acceptance.
Validates that the value is the representation of an acceptance.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"args_string":"(value) : Bool","args_html":"(value) : Bool","location":{"filename":"src/validators/presence.cr","line_number":189,"url":null},"def":{"name":"accepted?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.accepted?(value.to_s)"}},{"id":"ascii_only?(value:String):Bool-class-method","html_id":"ascii_only?(value:String):Bool-class-method","name":"ascii_only?","doc":"Validates that the *value* `String`\nis comprised in its entirety by ASCII characters.","summary":"Validates that the value String
is comprised in its entirety by ASCII characters.
Validates that all the String
in the values Array
are comprised in their entirety by ASCII characters.
Validates that the value has the format base64.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/format.cr","line_number":87,"url":null},"def":{"name":"base64?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if (value.match(@@rx_base64)) && ((value.size % 4) === 0)\n return true\nend\nfalse\n"}},{"id":"between?(value,min,max):Bool-class-method","html_id":"between?(value,min,max):Bool-class-method","name":"between?","doc":"Validates that the *value* is between (inclusive) *min* and *max*.","summary":"Validates that the value is between (inclusive) min and max.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"args_string":"(value, min, max) : Bool","args_html":"(value, min, max) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":87,"url":null},"def":{"name":"between?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value >= min && value <= max"}},{"id":"between?(value:String|Array,min:Int,max:Int):Bool-class-method","html_id":"between?(value:String|Array,min:Int,max:Int):Bool-class-method","name":"between?","doc":"Validates that the size of the *value* (`String` or `Array`) is between\n(inclusive) *min* and *max*.\n- See also `#size?`.","summary":"Validates that the size of the value (String
or Array
) is between (inclusive) min and max.
Validates that the value is an email.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":161,"url":null},"def":{"name":"email?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"size = value.size\nif size > 60 || size < 7\n return false\nend\nif value.includes?(\"..\")\n return false\nend\nif value.includes?(\"--\")\n return false\nend\nif value.includes?(\"___\")\n return false\nend\nif m = value.match(@@rx_email)\nelse\n return false\nend\nself.domain?(\"#{m[\"name\"]}.#{m[\"ext\"]}\")\n"}},{"id":"empty?(value):Bool-class-method","html_id":"empty?(value):Bool-class-method","name":"empty?","doc":"Validates that the *value* is empty.\n- See also `#absence?`.\n- See also `#not_in?`.","summary":"Validates that the value is empty.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"args_string":"(value) : Bool","args_html":"(value) : Bool","location":{"filename":"src/validators/presence.cr","line_number":58,"url":null},"def":{"name":"empty?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"case value\nwhen .nil?\n true\nwhen .is_a?(String)\n value.presence.nil?\nwhen .is_a?(Number)\n value == 0\nwhen .responds_to?(:size)\n value.size == 0\nelse\n false\nend"}},{"id":"ends?(value:String,search:String):Bool-class-method","html_id":"ends?(value:String,search:String):Bool-class-method","name":"ends?","doc":"Validates that the `String` *value* ends with *search*.\n- See also `#starts?`.\n- See also `#match?`.\n- See also `#in?`.","summary":"Validates that the String
value ends with search.
Validates that the String
value ends with search.
Validates that the String
value ends with search.
Validates that the value is equal to another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":10,"url":null},"def":{"name":"eq?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value == another_value"}},{"id":"gt?(value,another_value):Bool-class-method","html_id":"gt?(value,another_value):Bool-class-method","name":"gt?","doc":"Validates that the *value* is greater than *another_value*.","summary":"Validates that the value is greater than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":15,"url":null},"def":{"name":"gt?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value > another_value"}},{"id":"gt?(value:String|Array,limit:Int):Bool-class-method","html_id":"gt?(value:String|Array,limit:Int):Bool-class-method","name":"gt?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis greater than *limit* number.","summary":"Validates that the size of the value (String
or Array
) is greater than limit number.
Validates that the value is equal to or greater than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":27,"url":null},"def":{"name":"gte?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value >= another_value"}},{"id":"gte?(value:String|Array,min:Int):Bool-class-method","html_id":"gte?(value:String|Array,min:Int):Bool-class-method","name":"gte?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis greater than *min* number.\n> Similar to `#min`.","summary":"Validates that the size of the value (String
or Array
) is greater than min number.
Validates that the String
value does denote a representation of a hexadecimal string.
Validates that the Bytes
value does denote a representation of a hexadecimal slice of Bytes.
Validates that the String
value does denote a representation of a hexadecimal color.
Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"args_string":"(value, list : Array) : Bool","args_html":"(value, list : Array) : Bool","location":{"filename":"src/validators/presence.cr","line_number":109,"url":null},"def":{"name":"in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.includes?(value)"}},{"id":"in?(value:String,str:String):Bool-class-method","html_id":"in?(value:String,str:String):Bool-class-method","name":"in?","doc":"Validates that the (*str*) `String` contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (str) String
contains the value.
Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : Symbol | String, list : Hash) : Bool","args_html":"(key : Symbol | String, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":129,"url":null},"def":{"name":"in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.has_key?(key)"}},{"id":"in?(key:Symbol|String,list:NamedTuple):Bool-class-method","html_id":"in?(key:Symbol|String,list:NamedTuple):Bool-class-method","name":"in?","doc":"Validates that the (*list*) contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : Symbol | String, list : NamedTuple) : Bool","args_html":"(key : Symbol | String, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":124,"url":null},"def":{"name":"in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.has_key?(key)"}},{"id":"in?(value,list:Range):Bool-class-method","html_id":"in?(value,list:Range):Bool-class-method","name":"in?","doc":"Validates that the (*list*) contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"args_string":"(value, list : Range) : Bool","args_html":"(value, list : Range) : Bool","location":{"filename":"src/validators/presence.cr","line_number":119,"url":null},"def":{"name":"in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.includes?(value)"}},{"id":"in?(value,list:Tuple):Bool-class-method","html_id":"in?(value,list:Tuple):Bool-class-method","name":"in?","doc":"Validates that the (*list*) contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"args_string":"(value, list : Tuple) : Bool","args_html":"(value, list : Tuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":114,"url":null},"def":{"name":"in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.includes?(value)"}},{"id":"ip?(value:String):Bool-class-method","html_id":"ip?(value:String):Bool-class-method","name":"ip?","doc":"Validates that the *value* is an IP (IPv4 or IPv6).","summary":"Validates that the value is an IP (IPv4 or IPv6).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":80,"url":null},"def":{"name":"ip?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(self.ipv4?(value)) || (self.ipv6?(value))"}},{"id":"ipv4?(value:String):Bool-class-method","html_id":"ipv4?(value:String):Bool-class-method","name":"ipv4?","doc":"Validates that the *value* is an IPv4.","summary":"Validates that the value is an IPv4.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":85,"url":null},"def":{"name":"ipv4?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_ipv4).nil?"}},{"id":"ipv6?(value:String):Bool-class-method","html_id":"ipv6?(value:String):Bool-class-method","name":"ipv6?","doc":"Validates that the *value* is an IPv6.","summary":"Validates that the value is an IPv6.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":90,"url":null},"def":{"name":"ipv6?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"addr_and_zone = [value]\nif value.includes?('%')\n addr_and_zone = value.split('%')\n if addr_and_zone.size == 2\n else\n return false\n end\n if addr_and_zone[0].includes?(':')\n else\n return false\n end\n if addr_and_zone[1] == \"\"\n return false\n end\nend\nblocks = addr_and_zone[0].split(':')\nfound_omission_block = false\nfound_ipv4_transition_block = self.ipv4?(blocks[blocks.size - 1])\nexpected_number_of_blocks = found_ipv4_transition_block ? 7 : 8\nif blocks.size > expected_number_of_blocks\n return false\nend\nif value == \"::\"\n return true\nend\nif value[0...2] == \"::\"\n blocks.shift(2)\n found_omission_block = true\nelse\n if value[(value.size - 2)..] == \"::\"\n blocks.pop(2)\n found_omission_block = true\n end\nend\ni = 0\nwhile i < blocks.size\n if ((blocks[i] === \"\") && i > 0) && i < (blocks.size - 1)\n if found_omission_block\n return false\n end\n found_omission_block = true\n else\n if (!(found_ipv4_transition_block && (i == (blocks.size - 1)))) && blocks[i].match(@@rx_ipv6_block).nil?\n return false\n end\n end\n i = i + 1\nend\nif found_omission_block\n return blocks.size >= 1\nend\nblocks.size == expected_number_of_blocks\n"}},{"id":"json?(value:String,strict:Bool=true):Bool-class-method","html_id":"json?(value:String,strict:Bool=true):Bool-class-method","name":"json?","doc":"Validates that the *value* represents a JSON string.\n*strict* to `true` (default) to try to parse the JSON,\nreturns `false` if the parsing fails.\nIf *strict* is `false`, only the first char and the last char are checked.","summary":"Validates that the value represents a JSON string.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"strict","doc":null,"default_value":"true","external_name":"strict","restriction":"Bool"}],"args_string":"(value : String, strict : Bool = true) : Bool","args_html":"(value : String, strict : Bool = true) : Bool","location":{"filename":"src/validators/format.cr","line_number":64,"url":null},"def":{"name":"json?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"strict","doc":null,"default_value":"true","external_name":"strict","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if strict\n begin\n JSON.parse(value)\n rescue err\n return false\n else\n return true\n end\nend\n((self.starts?(value, \"{\")) && (self.ends?(value, \"}\"))) || ((self.starts?(value, \"[\")) && (self.ends?(value, \"]\")))\n"}},{"id":"jwt?(value:String):Bool-class-method","html_id":"jwt?(value:String):Bool-class-method","name":"jwt?","doc":"Validates that the *value* is a *JSON Web Token*.","summary":"Validates that the value is a JSON Web Token.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/format.cr","line_number":95,"url":null},"def":{"name":"jwt?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_jwt).nil?"}},{"id":"lat?(value:String|Float):Bool-class-method","html_id":"lat?(value:String|Float):Bool-class-method","name":"lat?","doc":"Validates that the *value* is a valid format representation of a geographical latitude.\n- See also `#lng?`.\n- See also `#lat_lng?`.","summary":"Validates that the value is a valid format representation of a geographical latitude.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"args_string":"(value : String | Float) : Bool","args_html":"(value : String | Float) : Bool","location":{"filename":"src/validators/geo.cr","line_number":31,"url":null},"def":{"name":"lat?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.to_s.match(@@rx_geo_lat).nil?"}},{"id":"lat_lng?(value:String):Bool-class-method","html_id":"lat_lng?(value:String):Bool-class-method","name":"lat_lng?","doc":"Validates that the *value* is a valid format representation of\na geographical position (given in latitude and longitude).\n- See also `#lat?`.\n- See also `#lng?`.","summary":"Validates that the value is a valid format representation of a geographical position (given in latitude and longitude).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/geo.cr","line_number":16,"url":null},"def":{"name":"lat_lng?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if !(value.includes?(\",\"))\n return false\nend\nlat, lng = value.split(\",\")\nif lat && lng\nelse\n return false\nend\nif ((lat.starts_with?('(')) && (!(lng.ends_with?(')'))))\n return false\nend\nif ((lng.ends_with?(')')) && (!(lat.starts_with?('('))))\n return false\nend\nif (lat.match(@@rx_geo_lat)) && (lng.match(@@rx_geo_lng))\n return true\nend\nfalse\n"}},{"id":"lng?(value:String|Float):Bool-class-method","html_id":"lng?(value:String|Float):Bool-class-method","name":"lng?","doc":"Validates that the *value* is a valid format representation of a geographical longitude.\n- See also `#lat?`.\n- See also `#lat_lng?`.","summary":"Validates that the value is a valid format representation of a geographical longitude.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"args_string":"(value : String | Float) : Bool","args_html":"(value : String | Float) : Bool","location":{"filename":"src/validators/geo.cr","line_number":38,"url":null},"def":{"name":"lng?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.to_s.match(@@rx_geo_lng).nil?"}},{"id":"lower?(value:String):Bool-class-method","html_id":"lower?(value:String):Bool-class-method","name":"lower?","doc":"Validates that the *value* is in lower case.","summary":"Validates that the value is in lower case.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/case_sensitive.cr","line_number":10,"url":null},"def":{"name":"lower?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(!value.blank?) && (value.downcase === value)"}},{"id":"lt?(value:String|Array,limit:Int):Bool-class-method","html_id":"lt?(value:String|Array,limit:Int):Bool-class-method","name":"lt?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis lesser than *limit* number.","summary":"Validates that the size of the value (String
or Array
) is lesser than limit number.
Validates that the value is lesser than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":39,"url":null},"def":{"name":"lt?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value < another_value"}},{"id":"lte?(value:String|Array,max:Int):Bool-class-method","html_id":"lte?(value:String|Array,max:Int):Bool-class-method","name":"lte?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis equal or lesser than *max* number.\n> Similar to `#max`.","summary":"Validates that the size of the value (String
or Array
) is equal or lesser than max number.
Validates that the value is equal to or lesser than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":51,"url":null},"def":{"name":"lte?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value <= another_value"}},{"id":"mac_addr?(value:String,no_colons:Bool=false):Bool-class-method","html_id":"mac_addr?(value:String,no_colons:Bool=false):Bool-class-method","name":"mac_addr?","doc":"Validates that the *value* is a MAC address.","summary":"Validates that the value is a MAC address.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"no_colons","doc":null,"default_value":"false","external_name":"no_colons","restriction":"Bool"}],"args_string":"(value : String, no_colons : Bool = false) : Bool","args_html":"(value : String, no_colons : Bool = false) : Bool","location":{"filename":"src/validators/uri.cr","line_number":179,"url":null},"def":{"name":"mac_addr?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"no_colons","doc":null,"default_value":"false","external_name":"no_colons","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if no_colons\n return !value.match(@@rx_mac_addr_no_colons).nil?\nend\n(((!value.match(@@rx_mac_addr).nil?) || (!value.match(@@rx_mac_addr_with_hyphen).nil?)) || (!value.match(@@rx_mac_addr_with_spaces).nil?)) || (!value.match(@@rx_mac_addr_with_dots).nil?)\n"}},{"id":"magnet_uri?(value:String):Bool-class-method","html_id":"magnet_uri?(value:String):Bool-class-method","name":"magnet_uri?","doc":"Validates that the *value* is a Magnet URI.","summary":"Validates that the value is a Magnet URI.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":189,"url":null},"def":{"name":"magnet_uri?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_magnet_uri).nil?"}},{"id":"match?(value:Number,pattern:Regex):Bool-class-method","html_id":"match?(value:Number,pattern:Regex):Bool-class-method","name":"match?","doc":"Validates that the *value* matches the *pattern*.","summary":"Validates that the value matches the pattern.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"Number"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"args_string":"(value : Number, pattern : Regex) : Bool","args_html":"(value : Number, pattern : Regex) : Bool","location":{"filename":"src/validators/presence.cr","line_number":15,"url":null},"def":{"name":"match?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"Number"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.to_s.match(pattern).nil?"}},{"id":"match?(value:String,pattern:Regex):Bool-class-method","html_id":"match?(value:String,pattern:Regex):Bool-class-method","name":"match?","doc":"Validates that the *value* matches the *pattern*.","summary":"Validates that the value matches the pattern.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"args_string":"(value : String, pattern : Regex) : Bool","args_html":"(value : String, pattern : Regex) : Bool","location":{"filename":"src/validators/presence.cr","line_number":10,"url":null},"def":{"name":"match?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(pattern).nil?"}},{"id":"max?(value,max):Bool-class-method","html_id":"max?(value,max):Bool-class-method","name":"max?","doc":"Validates that the *value* is equal to or lesser than *max* (inclusive).\n> Similar to `#lte`.","summary":"Validates that the value is equal to or lesser than max (inclusive).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"args_string":"(value, max) : Bool","args_html":"(value, max) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":76,"url":null},"def":{"name":"max?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value <= max"}},{"id":"max?(value:String|Array,max:Int):Bool-class-method","html_id":"max?(value:String|Array,max:Int):Bool-class-method","name":"max?","doc":":ditto:\n> Based on the size of the `String`.","summary":":ditto: > Based on the size of the String
.
Validates that the value has the format md5.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/format.cr","line_number":82,"url":null},"def":{"name":"md5?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_md5).nil?"}},{"id":"min?(value,min):Bool-class-method","html_id":"min?(value,min):Bool-class-method","name":"min?","doc":"Validates that the *value* is equal to or greater than *min* (inclusive).\n> Similar to `#gte`.","summary":"Validates that the value is equal to or greater than min (inclusive).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""}],"args_string":"(value, min) : Bool","args_html":"(value, min) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":64,"url":null},"def":{"name":"min?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value >= min"}},{"id":"min?(value:String|Array,min:Int):Bool-class-method","html_id":"min?(value:String|Array,min:Int):Bool-class-method","name":"min?","doc":":ditto:\n> Based on the size of the `String`.","summary":":ditto: > Based on the size of the String
.
Validates that the Bytes
value does denote a representation of a MongoID slice of Bytes.
Validates that the String
value does denote a representation of a MongoID string.
Validates that the value is not empty.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"args_string":"(value) : Bool","args_html":"(value) : Bool","location":{"filename":"src/validators/presence.cr","line_number":71,"url":null},"def":{"name":"not_empty?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(self.empty?(value)) == false"}},{"id":"not_in?(value:String,str:String):Bool-class-method","html_id":"not_in?(value:String,str:String):Bool-class-method","name":"not_in?","doc":"Validates that the (*str*) `String` does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (str) String
does not contain the value.
Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"args_string":"(value, list : Array) : Bool","args_html":"(value, list : Array) : Bool","location":{"filename":"src/validators/presence.cr","line_number":149,"url":null},"def":{"name":"not_in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.includes?(value))"}},{"id":"not_in?(value,list:Tuple):Bool-class-method","html_id":"not_in?(value,list:Tuple):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"args_string":"(value, list : Tuple) : Bool","args_html":"(value, list : Tuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":154,"url":null},"def":{"name":"not_in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.includes?(value))"}},{"id":"not_in?(value,list:Range):Bool-class-method","html_id":"not_in?(value,list:Range):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"args_string":"(value, list : Range) : Bool","args_html":"(value, list : Range) : Bool","location":{"filename":"src/validators/presence.cr","line_number":159,"url":null},"def":{"name":"not_in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.includes?(value))"}},{"id":"not_in?(key:Symbol|String,list:NamedTuple):Bool-class-method","html_id":"not_in?(key:Symbol|String,list:NamedTuple):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : Symbol | String, list : NamedTuple) : Bool","args_html":"(key : Symbol | String, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":164,"url":null},"def":{"name":"not_in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.has_key?(key))"}},{"id":"not_in?(key:Symbol|String,list:Hash):Bool-class-method","html_id":"not_in?(key:Symbol|String,list:Hash):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : Symbol | String, list : Hash) : Bool","args_html":"(key : Symbol | String, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":169,"url":null},"def":{"name":"not_in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.has_key?(key))"}},{"id":"not_null?(value):Bool-class-method","html_id":"not_null?(value):Bool-class-method","name":"not_null?","doc":"Validates that the *value* is not null (`nil`).\n- See also `#null?`.\n- See also `#not_empty?`.","summary":"Validates that the value is not null (nil
).
Validates that the value is null (nil
).
Validates that the value is a numeric String
representation.
Validates that the value is in a valid port range, between (inclusive) 1 / min and 65535 / max.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"\"0\"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"\"1\"","external_name":"min","restriction":"String"},{"name":"max","doc":null,"default_value":"\"65535\"","external_name":"max","restriction":"String"}],"args_string":"(value : String = "0", min : String = "1", max : String = "65535") : Bool","args_html":"(value : String = "0", min : String = "1", max : String = "65535") : Bool","location":{"filename":"src/validators/uri.cr","line_number":47,"url":null},"def":{"name":"port?","args":[{"name":"value","doc":null,"default_value":"\"0\"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"\"1\"","external_name":"min","restriction":"String"},{"name":"max","doc":null,"default_value":"\"65535\"","external_name":"max","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if (self.number?(min)) && (self.number?(max))\nelse\n return false\nend\nself.port?(value.to_i, min.to_i, max.to_i)\n"}},{"id":"port?(value=0,min=1,max=65535):Bool-class-method","html_id":"port?(value=0,min=1,max=65535):Bool-class-method","name":"port?","doc":"Validates that the *value* is in a valid port range,\nbetween (inclusive) 1 / *min* and 65535 / *max*.","summary":"Validates that the value is in a valid port range, between (inclusive) 1 / min and 65535 / max.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"0","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"65535","external_name":"max","restriction":""}],"args_string":"(value = 0, min = 1, max = 65535) : Bool","args_html":"(value = 0, min = 1, max = 65535) : Bool","location":{"filename":"src/validators/uri.cr","line_number":41,"url":null},"def":{"name":"port?","args":[{"name":"value","doc":null,"default_value":"0","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"65535","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if self.between?(value, 1, 65535)\nelse\n return false\nend\nself.between?(value, min, max)\n"}},{"id":"presence?(key:String|Symbol,list:NamedTuple):Bool-class-method","html_id":"presence?(key:String|Symbol,list:NamedTuple):Bool-class-method","name":"presence?","doc":"Validates the presence of the value.\n- See also `#in?`.\n- See also `#not_empty?`.","summary":"Validates the presence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : String | Symbol, list : NamedTuple) : Bool","args_html":"(key : String | Symbol, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":31,"url":null},"def":{"name":"presence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.not_empty?(list[key]?)"}},{"id":"presence?(key:String|Symbol|Number,list:Hash):Bool-class-method","html_id":"presence?(key:String|Symbol|Number,list:Hash):Bool-class-method","name":"presence?","doc":"Validates the presence of the value.\n- See also `#in?`.\n- See also `#not_empty?`.","summary":"Validates the presence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : String | Symbol | Number, list : Hash) : Bool","args_html":"(key : String | Symbol | Number, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":26,"url":null},"def":{"name":"presence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.not_empty?(list[key]?)"}},{"id":"refused?(value):Bool-class-method","html_id":"refused?(value):Bool-class-method","name":"refused?","doc":"Returns `true` if the *value* is the representation of a refusal.\n> One of: \"no\", \"n\", \"off\", \"0\", \"false\"\n\n*value* must implements *#to_s* method.\n- See also `#accepted?`.","summary":"Returns true
if the value is the representation of a refusal.
Validates that the value String
is the representation of a refusal.
Validates that the value is in the size array.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(String)"}],"args_string":"(value, size : Array(String))","args_html":"(value, size : Array(String))","location":{"filename":"src/validators/comparisons.cr","line_number":122,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(String)"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"size.includes?(value.size.to_s)"}},{"id":"size?(value,size:Array(Int))-class-method","html_id":"size?(value,size:Array(Int))-class-method","name":"size?","doc":"Validates that the *value* is in the *size* array.\n- See also `#between?`.","summary":"Validates that the value is in the size array.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(Int)"}],"args_string":"(value, size : Array(Int))","args_html":"(value, size : Array(Int))","location":{"filename":"src/validators/comparisons.cr","line_number":117,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(Int)"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"size.includes?(value.size)"}},{"id":"size?(value,size:Range)-class-method","html_id":"size?(value,size:Range)-class-method","name":"size?","doc":"Validates that the *value* is in the *size* range.\n- See also `#between?`.","summary":"Validates that the value is in the size range.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Range"}],"args_string":"(value, size : Range)","args_html":"(value, size : Range)","location":{"filename":"src/validators/comparisons.cr","line_number":111,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Range"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"size.includes?(value.size)"}},{"id":"size?(value,size:String)-class-method","html_id":"size?(value,size:String)-class-method","name":"size?","doc":"Validates that the *value* is equal to the *size*.","summary":"Validates that the value is equal to the size.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"String"}],"args_string":"(value, size : String)","args_html":"(value, size : String)","location":{"filename":"src/validators/comparisons.cr","line_number":105,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"value.size.to_s == size"}},{"id":"size?(value,size:Int)-class-method","html_id":"size?(value,size:Int)-class-method","name":"size?","doc":"Validates that the *value* is equal to the *size*.","summary":"Validates that the value is equal to the size.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Int"}],"args_string":"(value, size : Int)","args_html":"(value, size : Int)","location":{"filename":"src/validators/comparisons.cr","line_number":100,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Int"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"value.size == size"}},{"id":"slug?(value:String,min=1,max=100):Bool-class-method","html_id":"slug?(value:String,min=1,max=100):Bool-class-method","name":"slug?","doc":"Validates that the *value* is a slug.","summary":"Validates that the value is a slug.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"100","external_name":"max","restriction":""}],"args_string":"(value : String, min = 1, max = 100) : Bool","args_html":"(value : String, min = 1, max = 100) : Bool","location":{"filename":"src/validators/uri.cr","line_number":174,"url":null},"def":{"name":"slug?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"100","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(/^([a-zA-Z0-9_-]{#{min},#{max}})$/).nil?"}},{"id":"starts?(value:String,search:Char):Bool-class-method","html_id":"starts?(value:String,search:Char):Bool-class-method","name":"starts?","doc":"Validates that the `String` *value* starts with *search*.\n- See also `#ends?`.\n- See also `#match?`.\n- See also `#in?`.","summary":"Validates that the String
value starts with search.
Validates that the String
value starts with search.
Validates that the String
value starts with search.
Validates that the value is a time String
representation.
Validates that the value is in upper case.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/case_sensitive.cr","line_number":15,"url":null},"def":{"name":"upper?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(!value.blank?) && (value.upcase === value)"}},{"id":"url?(value:String):Bool-class-method","html_id":"url?(value:String):Bool-class-method","name":"url?","doc":"Validates that the *value* is a URL.","summary":"Validates that the value is a URL.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":55,"url":null},"def":{"name":"url?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"size = value.size\nif ((size >= 2083 || size < 11) || (value.match(/[\\s<>]/))) || (value.starts_with?(\"mailto:\"))\n return false\nend\nif m = value.match(@@rx_url)\nelse\n return false\nend\nif self.domain?(\"#{m[\"name\"]}.#{m[\"ext\"]}\")\nelse\n return false\nend\nsp = (value.gsub(/^http(?:s)?:\\/\\//, \"\")).split(\":\")\nif sp.size > 1\n if m_port = sp[1].match(/^[0-9]+/)\n else\n return true\n end\n return self.port?(m_port[0])\nend\ntrue\n"}},{"id":"uuid?(value:String,version=0):Bool-class-method","html_id":"uuid?(value:String,version=0):Bool-class-method","name":"uuid?","doc":"Validates that the *value* is a *UUID*\nVersions: 0 (all), 3, 4 and 5. *version* by default is 0 (all).","summary":"Validates that the value is a UUID Versions: 0 (all), 3, 4 and 5.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"version","doc":null,"default_value":"0","external_name":"version","restriction":""}],"args_string":"(value : String, version = 0) : Bool","args_html":"(value : String, version = 0) : Bool","location":{"filename":"src/validators/format.cr","line_number":103,"url":null},"def":{"name":"uuid?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"version","doc":null,"default_value":"0","external_name":"version","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if @@rx_uuid.has_key?(version)\nelse\n return false\nend\n!value.match(@@rx_uuid[version]).nil?\n"}}],"constructors":[],"instance_methods":[],"macros":[],"types":[{"html_id":"validator/Validator/Error","path":"Validator/Error.html","kind":"class","full_name":"Validator::Error","name":"Error","abstract":false,"superclass":{"html_id":"validator/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"validator/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"validator/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"validator/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/validator.cr","line_number":120,"url":null}],"repository_name":"validator","program":false,"enum":false,"alias":false,"aliased":null,"aliased_html":null,"const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"validator/Validator","kind":"module","full_name":"Validator","name":"Validator"},"doc":"Used by `is!` when a validation is not `true`.","summary":"Used by is!
when a validation is not true
.
An (optional) expressive flavor of Validator
(or Valid
alias).
Same as is
but raise
a Validator::Error
displaying an inspection if the validation is false
.
Standalone check module that provides a practical workflow for validations.
","class_methods":[{"id":"new_validation(errors:Errors)-class-method","html_id":"new_validation(errors:Errors)-class-method","name":"new_validation","doc":"Initializes a new `Validation` instance to combine\na series of checks (`Validation#check`).\nusing an existing *errors* `Hash` (`Check::Errors`).\n\n```\nv = Check.new_validation existing_errors\n```\n\nSame as:\n\n```\nv = Check::Validation.new existing_errors\n```\n\nExample to combine two hashes of validation errors:\n\n```\npreview_validation = Check.new_validation\nv = Check.new_validation preview_validation.errors\n```","summary":"Initializes a new Validation
instance to combine a series of checks (Validation#check
).
Initializes a new Validation
instance to combine a series of checks (Validation#check
).
A mixin to make a class checkable.
","abstract":false,"args":[],"args_string":"","location":{"filename":"src/checkable.cr","line_number":69,"url":null},"def":{"name":"checkable","args":[],"double_splat":null,"splat_index":null,"block_arg":null,"visibility":"Public","body":" include Check::Prop\n include Check::Checkable\n \nextend Check::CheckableStatic\n \n"}},{"id":"rules(**fields)-macro","html_id":"rules(**fields)-macro","name":"rules","doc":"Generates `check`, `check_{{field}}` and `clean_{{field}}` methods for *fields* (class variables).\n\n```\nrequire \"validator/check\"\n\nclass Article\n # Mixin\n Check.checkable\n\n property title : String\n property content : String\n property url : String?\n\n private def self.after_check_content(v : Check::Validation, content : String?, required : Bool, format : Bool)\n puts \"after_check_content\"\n puts \"Valid? #{v.valid?}\"\n content\n end\n\n Check.rules(\n content: {\n required: \"Content is required\", # or `true` to use the default error message\n before_check: ->(v : Check::Validation, content : String?, required : Bool, format : Bool) {\n puts \"before_check_content\"\n content\n },\n after_check: :after_check_email,\n check: {\n not_empty: {\"Article content is required\"},\n between: {\"The article content must be between 10 and 20 000 characters\", 10, 20_000},\n # ...\n },\n clean: {\n type: String,\n to: :to_s,\n # Proc or method name (Symbol)\n format: ->(content : String) { content.strip },\n message: \"Wrong type\",\n },\n },\n url: {\n check: {\n url: {\"Article URL is invalid\"},\n },\n clean: {\n # `nilable` means omited if not provided,\n # regardless of Crystal type (nilable or not)\n nilable: true,\n # Crystal type\n type: String,\n # Converter to the expected typed value\n to: :to_s,\n },\n },\n # ...\n)\nend\n\n# Triggered on all data\nv, article = Article.check(input_data)\n\n# Triggered on all fields of an instance\narticle = Article.new(title: \"foo\", content: \"bar\")\nv = article.check\n\n# Triggered on a value\nv, content = Article.check_content(input_data[\"content\"]?)\n\n# Cast and clean a value\nok, content = Article.clean_content(input_data[\"content\"]?)\n```\n\nSee also `Check.checkable`.","summary":"Generates check
, check_{{field}}
and clean_{{field}}
methods for fields (class variables).
Mixin that adds #check
method to be used with variables of an instance of the class including it.
Lifecycle method triggered after each call of #check
.
Lifecycle method triggered before each call of #check
.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Checks the instance fields and clean them.
","abstract":false,"args":[{"name":"v","doc":null,"default_value":"","external_name":"v","restriction":"Check::Validation"},{"name":"required","doc":null,"default_value":"true","external_name":"required","restriction":"Bool"},{"name":"format","doc":null,"default_value":"true","external_name":"format","restriction":"Bool"}],"args_string":"(v : Check::Validation, required : Bool = true, format : Bool = true) : Validation","args_html":"(v : Check::Validation, required : Bool = true, format : Bool = true) : Validation","location":{"filename":"src/checkable.cr","line_number":628,"url":null},"def":{"name":"check","args":[{"name":"v","doc":null,"default_value":"","external_name":"v","restriction":"Check::Validation"},{"name":"required","doc":null,"default_value":"true","external_name":"required","restriction":"Bool"},{"name":"format","doc":null,"default_value":"true","external_name":"format","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"{% if true %}\n\n # Call lifecycle method before check\n before_check v, required, format\n\n # Check all fields that have a method `#check_{field}`\n {% for ivar in @type.instance_vars.select do |ivar|\n @type.class.has_method?(\"check_#{ivar}\")\nend %}\n v, value = self.class.check_{{ ivar.name }}(v, {{ ivar.name }}, required, format)\n\n # If the field is not nilable and the value is nil,\n # it means that the clean method has failed\n # (to cast or an exception has been raised (and catched) in the formatter)\n # So ignore the nil value if the field is not nilable\n @{{ ivar.name }} = value.as({{ ivar.type }}) {% if !ivar.type.nilable? %} unless value.nil? {% end %}\n {% end %}\n\n # Check methods with `Check::Checker` annotation\n {% for method in @type.methods.select(&.annotation(Checker)) %}\n {{ method.name }} v, required, format\n {% end %}\n\n # Call lifecycle method `#after_check`\n after_check v, required, format\n\n v\n {% end %}"}},{"id":"check!(required:Bool=true,format:Bool=true):self-instance-method","html_id":"check!(required:Bool=true,format:Bool=true):self-instance-method","name":"check!","doc":"Same as `check` but this method raises a `Check::ValidationError`\nif the validation fails or if the clean has not been processed successfully.\n\n```\nmyCheckable.check! # => Returns the current instance.\n```\n\nThis method returns `self`, so it chainable :)\n\n```\nuser.email = \"me@example.org\"\nuser.check!.save\n```","summary":"Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Mixin that adds .check
method to be used with a Hash
.
Lifecycle method triggered after each call of .check
.
Lifecycle method triggered before each call of .check
.
Checks and clean the Hash
for its fields corresponding to class variables that have a .check_{{field}}
method.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Returns a json Hash
from a JSON input.
Returns a json Hash
from a JSON input.
Macro that returns the mapping of the JSON fields
","abstract":false,"args":[],"args_string":" : Hash(String, String)","args_html":" : Hash(String, String)","location":{"filename":"src/checkable.cr","line_number":374,"url":null},"def":{"name":"map_json_keys","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Hash(String, String)","visibility":"Public","body":"map = {} of String => String\n{% if true %}\n {% for ivar in @type.instance_vars %}\n {% ann = ivar.annotation(::JSON::Field) %}\n {% if ann && ann[:ignore] %}{% else %}\n map[{{ ((ann && ann[:key]) || ivar).id.stringify }}] = {{ ivar.id.stringify }}\n {% end %}\n {% end %}\n {% end %}\nmap\n"}},{"id":"to_crystal_h(h:Hash):Hash-instance-method","html_id":"to_crystal_h(h:Hash):Hash-instance-method","name":"to_crystal_h","doc":"Returns a new `Hash` with all JSON keys converted to Crystal keys.","summary":"Returns a new Hash
with all JSON keys converted to Crystal keys.
Returns a new Hash
with all Crystal keys converted to JSON keys.
Declare a method as a checker.
","class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[]},{"html_id":"validator/Check/Errors","path":"Check/Errors.html","kind":"alias","full_name":"Check::Errors","name":"Errors","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/check.cr","line_number":20,"url":null}],"repository_name":"validator","program":false,"enum":false,"alias":true,"aliased":"Hash(String | Symbol, Array(String))","aliased_html":"Hash(String | Symbol, Array(String))","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"validator/Check","kind":"module","full_name":"Check","name":"Check"},"doc":"Validation errors.\nIt's a `Hash` used as a container of errors, in order to handle them easily.\n\n```\nv = Check.new_validation\npp v.errors\n```","summary":"Validation errors.
","class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[]},{"html_id":"validator/Check/Prop","path":"Check/Prop.html","kind":"module","full_name":"Check::Prop","name":"Prop","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/checkable.cr","line_number":77,"url":null}],"repository_name":"validator","program":false,"enum":false,"alias":false,"aliased":null,"aliased_html":null,"const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"validator/Check","kind":"module","full_name":"Check","name":"Check"},"doc":"A mixin to make the `getter` macro of the Crystal std's,\nable to support the rules definition and factory block.","summary":"A mixin to make the getter
macro of the Crystal std's, able to support the rules definition and factory block.
Combines a series of checks into one validation instance, with a customized error message for each case.
","class_methods":[],"constructors":[{"id":"new(errors:Errors)-class-method","html_id":"new(errors:Errors)-class-method","name":"new","doc":"Initializes a validation using an existing *errors* `Hash` (`Check::Errors`).\n\n```\nv = Check::Validation.new\n```\n\nSame as:\n\n```\nv = Check.new_validation\n```","summary":"Initializes a validation using an existing errors Hash
(Check::Errors
).
Initializes a validation.
","abstract":false,"args":[],"args_string":"","args_html":"","location":{"filename":"src/check.cr","line_number":167,"url":null},"def":{"name":"new","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"add_error(key:Symbol|String,message:String):Validation-instance-method","html_id":"add_error(key:Symbol|String,message:String):Validation-instance-method","name":"add_error","doc":"Add a validation error.\n\n```\nv = Check.new_validation\nv.add_error(:foo, \"Foo error!\")\npp v.errors # => {:foo => [\"Foo error!\"]}\n```\n\nSee also: `Errors`","summary":"Add a validation error.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"args_string":"(key : Symbol | String, message : String) : Validation","args_html":"(key : Symbol | String, message : String) : Validation","location":{"filename":"src/check.cr","line_number":205,"url":null},"def":{"name":"add_error","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if message.blank?\n message = \"\\\"#{key}\\\" is not valid.\"\nend\nif @errors.has_key?(key)\nelse\n @errors[key] = Array(String).new\nend\n@errors[key] << message\nself\n"}},{"id":"add_error(key:Symbol|String):Validation-instance-method","html_id":"add_error(key:Symbol|String):Validation-instance-method","name":"add_error","doc":"Add a validation error.\n\n> By default a standard message is used.\n\n```\nv = Check.new_validation\nv.add_error(:foo)\npp v.errors # => {:foo => [\"\\\"foo\\\" is not valid.\"]}\n```\n\nSee also: `Errors`","summary":"Add a validation error.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"}],"args_string":"(key : Symbol | String) : Validation","args_html":"(key : Symbol | String) : Validation","location":{"filename":"src/check.cr","line_number":225,"url":null},"def":{"name":"add_error","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"add_error(key, \"\")\nself\n"}},{"id":"check(key:Symbol|String,message:String,valid:Bool):Validation-instance-method","html_id":"check(key:Symbol|String,message:String,valid:Bool):Validation-instance-method","name":"check","doc":"Checks a validation, often used in sequence.\n\nIf *valid* is `false`, the error *message* is added in the `errors`.\nNothing if *valid* is `true`.\n\n```\nv = Check.new_validation\n\n# -- email\n\nv.check :email, \"The email is required.\", is :presence?, :email, user\nv.check :email, \"#{user[:email]} is an invalid email.\", is :email?, user[:email]?\n\n# -- username\n\nv.check :username, \"The username is required.\", is :presence?, :username, user\n\nv.check(\n :username,\n \"The username must contain at least 2 characters.\",\n is :min?, user[:username]?, 2\n)\n\nv.check(\n :username,\n \"The username must contain a maximum of 20 characters.\",\n is :max?, user[:username]?, 20\n)\n\n# Print all errors\npp v.errors\n```","summary":"Checks a validation, often used in sequence.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"args_string":"(key : Symbol | String, message : String, valid : Bool) : Validation","args_html":"(key : Symbol | String, message : String, valid : Bool) : Validation","location":{"filename":"src/check.cr","line_number":273,"url":null},"def":{"name":"check","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if valid\nelse\n add_error(key, message)\nend\nself\n"}},{"id":"check(key:Symbol|String,valid:Bool,message:String):Validation-instance-method","html_id":"check(key:Symbol|String,valid:Bool,message:String):Validation-instance-method","name":"check","doc":"Checks a validation, often used in sequence.\n\nIf *valid* is `false`, the error *message* is added in the `errors`.\nNothing if *valid* is `true`.\n\n```\nv = Check.new_validation\n\n# -- email\n\nv.check(:email, is(:presence?, :email, user), \"The email is required.\")\nv.check(:email, is(:email?, user[:email]?), \"#{user[:email]} is an invalid email.\")\n\n# -- username\n\nv.check(:username, is(:presence?, :username, user), \"The username is required.\")\n\nv.check(\n :username,\n is :min?, user[:username]?, 2,\n \"The username must contain at least 2 characters.\"\n)\n\nv.check(\n :username,\n is :max?, user[:username]?, 20,\n \"The username must contain a maximum of 20 characters.\"\n)\n\n# Print all errors\npp v.errors\n```","summary":"Checks a validation, often used in sequence.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"args_string":"(key : Symbol | String, valid : Bool, message : String) : Validation","args_html":"(key : Symbol | String, valid : Bool, message : String) : Validation","location":{"filename":"src/check.cr","line_number":310,"url":null},"def":{"name":"check","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if valid\nelse\n add_error(key, message)\nend\nself\n"}},{"id":"check(key:Symbol|String,valid:Bool):Validation-instance-method","html_id":"check(key:Symbol|String,valid:Bool):Validation-instance-method","name":"check","doc":"Checks a validation, often used in sequence.\n\nIf *valid* is `false`, an error message is added in the `errors`.\nNothing if *valid* is `true`.\n\n> Unlike other `check` methods, with this one a default standard message is used.\n\n```\nv = Check.new_validation\n\nv.check(\"email\", Valid.presence?(\"email\", user))\nv.check(\"email\", Valid.email?(user[\"email\"]?))\n\n# Print all errors\npp v.errors\n```","summary":"Checks a validation, often used in sequence.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"args_string":"(key : Symbol | String, valid : Bool) : Validation","args_html":"(key : Symbol | String, valid : Bool) : Validation","location":{"filename":"src/check.cr","line_number":331,"url":null},"def":{"name":"check","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if valid\nelse\n add_error(key, \"\")\nend\nself\n"}},{"id":"errors:Errors-instance-method","html_id":"errors:Errors-instance-method","name":"errors","doc":"Errors container.\n\n```\nv = Check.new_validation\npp v.errors\n```","summary":"Errors container.
","abstract":false,"args":[],"args_string":" : Errors","args_html":" : Errors","location":{"filename":"src/check.cr","line_number":192,"url":null},"def":{"name":"errors","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Errors","visibility":"Public","body":"@errors"}},{"id":"to_exception-instance-method","html_id":"to_exception-instance-method","name":"to_exception","doc":"Creates a new instance of `ValidationError` (`Exception`).","summary":"Creates a new instance of ValidationError
(Exception
).
Returns true
if there is no error, false
if there is one or more errors.
Validation error.
","class_methods":[],"constructors":[{"id":"new(errors:Errors,message="Validationerror")-class-method","html_id":"new(errors:Errors,message="Validationerror")-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[{"name":"errors","doc":null,"default_value":"","external_name":"errors","restriction":"Errors"},{"name":"message","doc":null,"default_value":"\"Validation error\"","external_name":"message","restriction":""}],"args_string":"(errors : Errors, message = "Validation error")","args_html":"(errors : Errors, message = "Validation error")","location":{"filename":"src/check.cr","line_number":25,"url":null},"def":{"name":"new","args":[{"name":"errors","doc":null,"default_value":"","external_name":"errors","restriction":"Errors"},{"name":"message","doc":null,"default_value":"\"Validation error\"","external_name":"message","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize(errors, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"errors:Errors-instance-method","html_id":"errors:Errors-instance-method","name":"errors","doc":"Returns `Errors` container (`Hash`).","summary":"Returns Errors
container (Hash
).
Alias of Validator
∠(・.-)―〉 →◎ validator
is a Crystal data validation module.
Validates the absence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : String | Symbol, list : NamedTuple) : Bool","args_html":"(key : String | Symbol, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":47,"url":null},"def":{"name":"absence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.empty?(list[key]?)"}},{"id":"absence?(key:String|Symbol|Number,list:Hash):Bool-class-method","html_id":"absence?(key:String|Symbol|Number,list:Hash):Bool-class-method","name":"absence?","doc":"Validates the absence of the value.\n- See also `#not_in?`.\n- See also `#empty?`.","summary":"Validates the absence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : String | Symbol | Number, list : Hash) : Bool","args_html":"(key : String | Symbol | Number, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":42,"url":null},"def":{"name":"absence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.empty?(list[key]?)"}},{"id":"accepted?(value:String):Bool-class-method","html_id":"accepted?(value:String):Bool-class-method","name":"accepted?","doc":"Validates that the *value* `String` is the representation of an acceptance.\n> One of: \"yes\", \"y\", \"on\", \"o\", \"ok\", \"1\", \"true\"\n- See also `#refused?`.","summary":"Validates that the value String
is the representation of an acceptance.
Validates that the value is the representation of an acceptance.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"args_string":"(value) : Bool","args_html":"(value) : Bool","location":{"filename":"src/validators/presence.cr","line_number":189,"url":null},"def":{"name":"accepted?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.accepted?(value.to_s)"}},{"id":"ascii_only?(value:String):Bool-class-method","html_id":"ascii_only?(value:String):Bool-class-method","name":"ascii_only?","doc":"Validates that the *value* `String`\nis comprised in its entirety by ASCII characters.","summary":"Validates that the value String
is comprised in its entirety by ASCII characters.
Validates that all the String
in the values Array
are comprised in their entirety by ASCII characters.
Validates that the value has the format base64.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/format.cr","line_number":87,"url":null},"def":{"name":"base64?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if (value.match(@@rx_base64)) && ((value.size % 4) === 0)\n return true\nend\nfalse\n"}},{"id":"between?(value,min,max):Bool-class-method","html_id":"between?(value,min,max):Bool-class-method","name":"between?","doc":"Validates that the *value* is between (inclusive) *min* and *max*.","summary":"Validates that the value is between (inclusive) min and max.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"args_string":"(value, min, max) : Bool","args_html":"(value, min, max) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":87,"url":null},"def":{"name":"between?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value >= min && value <= max"}},{"id":"between?(value:String|Array,min:Int,max:Int):Bool-class-method","html_id":"between?(value:String|Array,min:Int,max:Int):Bool-class-method","name":"between?","doc":"Validates that the size of the *value* (`String` or `Array`) is between\n(inclusive) *min* and *max*.\n- See also `#size?`.","summary":"Validates that the size of the value (String
or Array
) is between (inclusive) min and max.
Validates that the value is an email.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":161,"url":null},"def":{"name":"email?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"size = value.size\nif size > 60 || size < 7\n return false\nend\nif value.includes?(\"..\")\n return false\nend\nif value.includes?(\"--\")\n return false\nend\nif value.includes?(\"___\")\n return false\nend\nif m = value.match(@@rx_email)\nelse\n return false\nend\nself.domain?(\"#{m[\"name\"]}.#{m[\"ext\"]}\")\n"}},{"id":"empty?(value):Bool-class-method","html_id":"empty?(value):Bool-class-method","name":"empty?","doc":"Validates that the *value* is empty.\n- See also `#absence?`.\n- See also `#not_in?`.","summary":"Validates that the value is empty.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"args_string":"(value) : Bool","args_html":"(value) : Bool","location":{"filename":"src/validators/presence.cr","line_number":58,"url":null},"def":{"name":"empty?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"case value\nwhen .nil?\n true\nwhen .is_a?(String)\n value.presence.nil?\nwhen .is_a?(Number)\n value == 0\nwhen .responds_to?(:size)\n value.size == 0\nelse\n false\nend"}},{"id":"ends?(value:String,search:String):Bool-class-method","html_id":"ends?(value:String,search:String):Bool-class-method","name":"ends?","doc":"Validates that the `String` *value* ends with *search*.\n- See also `#starts?`.\n- See also `#match?`.\n- See also `#in?`.","summary":"Validates that the String
value ends with search.
Validates that the String
value ends with search.
Validates that the String
value ends with search.
Validates that the value is equal to another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":10,"url":null},"def":{"name":"eq?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value == another_value"}},{"id":"gt?(value,another_value):Bool-class-method","html_id":"gt?(value,another_value):Bool-class-method","name":"gt?","doc":"Validates that the *value* is greater than *another_value*.","summary":"Validates that the value is greater than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":15,"url":null},"def":{"name":"gt?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value > another_value"}},{"id":"gt?(value:String|Array,limit:Int):Bool-class-method","html_id":"gt?(value:String|Array,limit:Int):Bool-class-method","name":"gt?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis greater than *limit* number.","summary":"Validates that the size of the value (String
or Array
) is greater than limit number.
Validates that the value is equal to or greater than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":27,"url":null},"def":{"name":"gte?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value >= another_value"}},{"id":"gte?(value:String|Array,min:Int):Bool-class-method","html_id":"gte?(value:String|Array,min:Int):Bool-class-method","name":"gte?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis greater than *min* number.\n> Similar to `#min`.","summary":"Validates that the size of the value (String
or Array
) is greater than min number.
Validates that the String
value does denote a representation of a hexadecimal string.
Validates that the Bytes
value does denote a representation of a hexadecimal slice of Bytes.
Validates that the String
value does denote a representation of a hexadecimal color.
Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"args_string":"(value, list : Array) : Bool","args_html":"(value, list : Array) : Bool","location":{"filename":"src/validators/presence.cr","line_number":109,"url":null},"def":{"name":"in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.includes?(value)"}},{"id":"in?(value:String,str:String):Bool-class-method","html_id":"in?(value:String,str:String):Bool-class-method","name":"in?","doc":"Validates that the (*str*) `String` contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (str) String
contains the value.
Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : Symbol | String, list : Hash) : Bool","args_html":"(key : Symbol | String, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":129,"url":null},"def":{"name":"in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.has_key?(key)"}},{"id":"in?(key:Symbol|String,list:NamedTuple):Bool-class-method","html_id":"in?(key:Symbol|String,list:NamedTuple):Bool-class-method","name":"in?","doc":"Validates that the (*list*) contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : Symbol | String, list : NamedTuple) : Bool","args_html":"(key : Symbol | String, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":124,"url":null},"def":{"name":"in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.has_key?(key)"}},{"id":"in?(value,list:Range):Bool-class-method","html_id":"in?(value,list:Range):Bool-class-method","name":"in?","doc":"Validates that the (*list*) contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"args_string":"(value, list : Range) : Bool","args_html":"(value, list : Range) : Bool","location":{"filename":"src/validators/presence.cr","line_number":119,"url":null},"def":{"name":"in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.includes?(value)"}},{"id":"in?(value,list:Tuple):Bool-class-method","html_id":"in?(value,list:Tuple):Bool-class-method","name":"in?","doc":"Validates that the (*list*) contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"args_string":"(value, list : Tuple) : Bool","args_html":"(value, list : Tuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":114,"url":null},"def":{"name":"in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.includes?(value)"}},{"id":"ip?(value:String):Bool-class-method","html_id":"ip?(value:String):Bool-class-method","name":"ip?","doc":"Validates that the *value* is an IP (IPv4 or IPv6).","summary":"Validates that the value is an IP (IPv4 or IPv6).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":80,"url":null},"def":{"name":"ip?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(self.ipv4?(value)) || (self.ipv6?(value))"}},{"id":"ipv4?(value:String):Bool-class-method","html_id":"ipv4?(value:String):Bool-class-method","name":"ipv4?","doc":"Validates that the *value* is an IPv4.","summary":"Validates that the value is an IPv4.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":85,"url":null},"def":{"name":"ipv4?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_ipv4).nil?"}},{"id":"ipv6?(value:String):Bool-class-method","html_id":"ipv6?(value:String):Bool-class-method","name":"ipv6?","doc":"Validates that the *value* is an IPv6.","summary":"Validates that the value is an IPv6.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":90,"url":null},"def":{"name":"ipv6?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"addr_and_zone = [value]\nif value.includes?('%')\n addr_and_zone = value.split('%')\n if addr_and_zone.size == 2\n else\n return false\n end\n if addr_and_zone[0].includes?(':')\n else\n return false\n end\n if addr_and_zone[1] == \"\"\n return false\n end\nend\nblocks = addr_and_zone[0].split(':')\nfound_omission_block = false\nfound_ipv4_transition_block = self.ipv4?(blocks[blocks.size - 1])\nexpected_number_of_blocks = found_ipv4_transition_block ? 7 : 8\nif blocks.size > expected_number_of_blocks\n return false\nend\nif value == \"::\"\n return true\nend\nif value[0...2] == \"::\"\n blocks.shift(2)\n found_omission_block = true\nelse\n if value[(value.size - 2)..] == \"::\"\n blocks.pop(2)\n found_omission_block = true\n end\nend\ni = 0\nwhile i < blocks.size\n if ((blocks[i] === \"\") && i > 0) && i < (blocks.size - 1)\n if found_omission_block\n return false\n end\n found_omission_block = true\n else\n if (!(found_ipv4_transition_block && (i == (blocks.size - 1)))) && blocks[i].match(@@rx_ipv6_block).nil?\n return false\n end\n end\n i = i + 1\nend\nif found_omission_block\n return blocks.size >= 1\nend\nblocks.size == expected_number_of_blocks\n"}},{"id":"json?(value:String,strict:Bool=true):Bool-class-method","html_id":"json?(value:String,strict:Bool=true):Bool-class-method","name":"json?","doc":"Validates that the *value* represents a JSON string.\n*strict* to `true` (default) to try to parse the JSON,\nreturns `false` if the parsing fails.\nIf *strict* is `false`, only the first char and the last char are checked.","summary":"Validates that the value represents a JSON string.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"strict","doc":null,"default_value":"true","external_name":"strict","restriction":"Bool"}],"args_string":"(value : String, strict : Bool = true) : Bool","args_html":"(value : String, strict : Bool = true) : Bool","location":{"filename":"src/validators/format.cr","line_number":64,"url":null},"def":{"name":"json?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"strict","doc":null,"default_value":"true","external_name":"strict","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if strict\n begin\n JSON.parse(value)\n rescue err\n return false\n else\n return true\n end\nend\n((self.starts?(value, \"{\")) && (self.ends?(value, \"}\"))) || ((self.starts?(value, \"[\")) && (self.ends?(value, \"]\")))\n"}},{"id":"jwt?(value:String):Bool-class-method","html_id":"jwt?(value:String):Bool-class-method","name":"jwt?","doc":"Validates that the *value* is a *JSON Web Token*.","summary":"Validates that the value is a JSON Web Token.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/format.cr","line_number":95,"url":null},"def":{"name":"jwt?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_jwt).nil?"}},{"id":"lat?(value:String|Float):Bool-class-method","html_id":"lat?(value:String|Float):Bool-class-method","name":"lat?","doc":"Validates that the *value* is a valid format representation of a geographical latitude.\n- See also `#lng?`.\n- See also `#lat_lng?`.","summary":"Validates that the value is a valid format representation of a geographical latitude.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"args_string":"(value : String | Float) : Bool","args_html":"(value : String | Float) : Bool","location":{"filename":"src/validators/geo.cr","line_number":31,"url":null},"def":{"name":"lat?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.to_s.match(@@rx_geo_lat).nil?"}},{"id":"lat_lng?(value:String):Bool-class-method","html_id":"lat_lng?(value:String):Bool-class-method","name":"lat_lng?","doc":"Validates that the *value* is a valid format representation of\na geographical position (given in latitude and longitude).\n- See also `#lat?`.\n- See also `#lng?`.","summary":"Validates that the value is a valid format representation of a geographical position (given in latitude and longitude).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/geo.cr","line_number":16,"url":null},"def":{"name":"lat_lng?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if !(value.includes?(\",\"))\n return false\nend\nlat, lng = value.split(\",\")\nif lat && lng\nelse\n return false\nend\nif ((lat.starts_with?('(')) && (!(lng.ends_with?(')'))))\n return false\nend\nif ((lng.ends_with?(')')) && (!(lat.starts_with?('('))))\n return false\nend\nif (lat.match(@@rx_geo_lat)) && (lng.match(@@rx_geo_lng))\n return true\nend\nfalse\n"}},{"id":"lng?(value:String|Float):Bool-class-method","html_id":"lng?(value:String|Float):Bool-class-method","name":"lng?","doc":"Validates that the *value* is a valid format representation of a geographical longitude.\n- See also `#lat?`.\n- See also `#lat_lng?`.","summary":"Validates that the value is a valid format representation of a geographical longitude.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"args_string":"(value : String | Float) : Bool","args_html":"(value : String | Float) : Bool","location":{"filename":"src/validators/geo.cr","line_number":38,"url":null},"def":{"name":"lng?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.to_s.match(@@rx_geo_lng).nil?"}},{"id":"lower?(value:String):Bool-class-method","html_id":"lower?(value:String):Bool-class-method","name":"lower?","doc":"Validates that the *value* is in lower case.","summary":"Validates that the value is in lower case.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/case_sensitive.cr","line_number":10,"url":null},"def":{"name":"lower?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(!value.blank?) && (value.downcase === value)"}},{"id":"lt?(value:String|Array,limit:Int):Bool-class-method","html_id":"lt?(value:String|Array,limit:Int):Bool-class-method","name":"lt?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis lesser than *limit* number.","summary":"Validates that the size of the value (String
or Array
) is lesser than limit number.
Validates that the value is lesser than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":39,"url":null},"def":{"name":"lt?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value < another_value"}},{"id":"lte?(value:String|Array,max:Int):Bool-class-method","html_id":"lte?(value:String|Array,max:Int):Bool-class-method","name":"lte?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis equal or lesser than *max* number.\n> Similar to `#max`.","summary":"Validates that the size of the value (String
or Array
) is equal or lesser than max number.
Validates that the value is equal to or lesser than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":51,"url":null},"def":{"name":"lte?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value <= another_value"}},{"id":"mac_addr?(value:String,no_colons:Bool=false):Bool-class-method","html_id":"mac_addr?(value:String,no_colons:Bool=false):Bool-class-method","name":"mac_addr?","doc":"Validates that the *value* is a MAC address.","summary":"Validates that the value is a MAC address.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"no_colons","doc":null,"default_value":"false","external_name":"no_colons","restriction":"Bool"}],"args_string":"(value : String, no_colons : Bool = false) : Bool","args_html":"(value : String, no_colons : Bool = false) : Bool","location":{"filename":"src/validators/uri.cr","line_number":179,"url":null},"def":{"name":"mac_addr?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"no_colons","doc":null,"default_value":"false","external_name":"no_colons","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if no_colons\n return !value.match(@@rx_mac_addr_no_colons).nil?\nend\n(((!value.match(@@rx_mac_addr).nil?) || (!value.match(@@rx_mac_addr_with_hyphen).nil?)) || (!value.match(@@rx_mac_addr_with_spaces).nil?)) || (!value.match(@@rx_mac_addr_with_dots).nil?)\n"}},{"id":"magnet_uri?(value:String):Bool-class-method","html_id":"magnet_uri?(value:String):Bool-class-method","name":"magnet_uri?","doc":"Validates that the *value* is a Magnet URI.","summary":"Validates that the value is a Magnet URI.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":189,"url":null},"def":{"name":"magnet_uri?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_magnet_uri).nil?"}},{"id":"match?(value:Number,pattern:Regex):Bool-class-method","html_id":"match?(value:Number,pattern:Regex):Bool-class-method","name":"match?","doc":"Validates that the *value* matches the *pattern*.","summary":"Validates that the value matches the pattern.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"Number"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"args_string":"(value : Number, pattern : Regex) : Bool","args_html":"(value : Number, pattern : Regex) : Bool","location":{"filename":"src/validators/presence.cr","line_number":15,"url":null},"def":{"name":"match?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"Number"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.to_s.match(pattern).nil?"}},{"id":"match?(value:String,pattern:Regex):Bool-class-method","html_id":"match?(value:String,pattern:Regex):Bool-class-method","name":"match?","doc":"Validates that the *value* matches the *pattern*.","summary":"Validates that the value matches the pattern.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"args_string":"(value : String, pattern : Regex) : Bool","args_html":"(value : String, pattern : Regex) : Bool","location":{"filename":"src/validators/presence.cr","line_number":10,"url":null},"def":{"name":"match?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(pattern).nil?"}},{"id":"max?(value,max):Bool-class-method","html_id":"max?(value,max):Bool-class-method","name":"max?","doc":"Validates that the *value* is equal to or lesser than *max* (inclusive).\n> Similar to `#lte`.","summary":"Validates that the value is equal to or lesser than max (inclusive).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"args_string":"(value, max) : Bool","args_html":"(value, max) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":76,"url":null},"def":{"name":"max?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value <= max"}},{"id":"max?(value:String|Array,max:Int):Bool-class-method","html_id":"max?(value:String|Array,max:Int):Bool-class-method","name":"max?","doc":":ditto:\n> Based on the size of the `String`.","summary":":ditto: > Based on the size of the String
.
Validates that the value has the format md5.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/format.cr","line_number":82,"url":null},"def":{"name":"md5?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_md5).nil?"}},{"id":"min?(value,min):Bool-class-method","html_id":"min?(value,min):Bool-class-method","name":"min?","doc":"Validates that the *value* is equal to or greater than *min* (inclusive).\n> Similar to `#gte`.","summary":"Validates that the value is equal to or greater than min (inclusive).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""}],"args_string":"(value, min) : Bool","args_html":"(value, min) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":64,"url":null},"def":{"name":"min?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value >= min"}},{"id":"min?(value:String|Array,min:Int):Bool-class-method","html_id":"min?(value:String|Array,min:Int):Bool-class-method","name":"min?","doc":":ditto:\n> Based on the size of the `String`.","summary":":ditto: > Based on the size of the String
.
Validates that the Bytes
value does denote a representation of a MongoID slice of Bytes.
Validates that the String
value does denote a representation of a MongoID string.
Validates that the value is not empty.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"args_string":"(value) : Bool","args_html":"(value) : Bool","location":{"filename":"src/validators/presence.cr","line_number":71,"url":null},"def":{"name":"not_empty?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(self.empty?(value)) == false"}},{"id":"not_in?(value:String,str:String):Bool-class-method","html_id":"not_in?(value:String,str:String):Bool-class-method","name":"not_in?","doc":"Validates that the (*str*) `String` does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (str) String
does not contain the value.
Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"args_string":"(value, list : Array) : Bool","args_html":"(value, list : Array) : Bool","location":{"filename":"src/validators/presence.cr","line_number":149,"url":null},"def":{"name":"not_in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.includes?(value))"}},{"id":"not_in?(value,list:Tuple):Bool-class-method","html_id":"not_in?(value,list:Tuple):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"args_string":"(value, list : Tuple) : Bool","args_html":"(value, list : Tuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":154,"url":null},"def":{"name":"not_in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.includes?(value))"}},{"id":"not_in?(value,list:Range):Bool-class-method","html_id":"not_in?(value,list:Range):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"args_string":"(value, list : Range) : Bool","args_html":"(value, list : Range) : Bool","location":{"filename":"src/validators/presence.cr","line_number":159,"url":null},"def":{"name":"not_in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.includes?(value))"}},{"id":"not_in?(key:Symbol|String,list:NamedTuple):Bool-class-method","html_id":"not_in?(key:Symbol|String,list:NamedTuple):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : Symbol | String, list : NamedTuple) : Bool","args_html":"(key : Symbol | String, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":164,"url":null},"def":{"name":"not_in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.has_key?(key))"}},{"id":"not_in?(key:Symbol|String,list:Hash):Bool-class-method","html_id":"not_in?(key:Symbol|String,list:Hash):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : Symbol | String, list : Hash) : Bool","args_html":"(key : Symbol | String, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":169,"url":null},"def":{"name":"not_in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.has_key?(key))"}},{"id":"not_null?(value):Bool-class-method","html_id":"not_null?(value):Bool-class-method","name":"not_null?","doc":"Validates that the *value* is not null (`nil`).\n- See also `#null?`.\n- See also `#not_empty?`.","summary":"Validates that the value is not null (nil
).
Validates that the value is null (nil
).
Validates that the value is a numeric String
representation.
Validates that the value is in a valid port range, between (inclusive) 1 / min and 65535 / max.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"\"0\"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"\"1\"","external_name":"min","restriction":"String"},{"name":"max","doc":null,"default_value":"\"65535\"","external_name":"max","restriction":"String"}],"args_string":"(value : String = "0", min : String = "1", max : String = "65535") : Bool","args_html":"(value : String = "0", min : String = "1", max : String = "65535") : Bool","location":{"filename":"src/validators/uri.cr","line_number":47,"url":null},"def":{"name":"port?","args":[{"name":"value","doc":null,"default_value":"\"0\"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"\"1\"","external_name":"min","restriction":"String"},{"name":"max","doc":null,"default_value":"\"65535\"","external_name":"max","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if (self.number?(min)) && (self.number?(max))\nelse\n return false\nend\nself.port?(value.to_i, min.to_i, max.to_i)\n"}},{"id":"port?(value=0,min=1,max=65535):Bool-class-method","html_id":"port?(value=0,min=1,max=65535):Bool-class-method","name":"port?","doc":"Validates that the *value* is in a valid port range,\nbetween (inclusive) 1 / *min* and 65535 / *max*.","summary":"Validates that the value is in a valid port range, between (inclusive) 1 / min and 65535 / max.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"0","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"65535","external_name":"max","restriction":""}],"args_string":"(value = 0, min = 1, max = 65535) : Bool","args_html":"(value = 0, min = 1, max = 65535) : Bool","location":{"filename":"src/validators/uri.cr","line_number":41,"url":null},"def":{"name":"port?","args":[{"name":"value","doc":null,"default_value":"0","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"65535","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if self.between?(value, 1, 65535)\nelse\n return false\nend\nself.between?(value, min, max)\n"}},{"id":"presence?(key:String|Symbol,list:NamedTuple):Bool-class-method","html_id":"presence?(key:String|Symbol,list:NamedTuple):Bool-class-method","name":"presence?","doc":"Validates the presence of the value.\n- See also `#in?`.\n- See also `#not_empty?`.","summary":"Validates the presence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : String | Symbol, list : NamedTuple) : Bool","args_html":"(key : String | Symbol, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":31,"url":null},"def":{"name":"presence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.not_empty?(list[key]?)"}},{"id":"presence?(key:String|Symbol|Number,list:Hash):Bool-class-method","html_id":"presence?(key:String|Symbol|Number,list:Hash):Bool-class-method","name":"presence?","doc":"Validates the presence of the value.\n- See also `#in?`.\n- See also `#not_empty?`.","summary":"Validates the presence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : String | Symbol | Number, list : Hash) : Bool","args_html":"(key : String | Symbol | Number, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":26,"url":null},"def":{"name":"presence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.not_empty?(list[key]?)"}},{"id":"refused?(value):Bool-class-method","html_id":"refused?(value):Bool-class-method","name":"refused?","doc":"Returns `true` if the *value* is the representation of a refusal.\n> One of: \"no\", \"n\", \"off\", \"0\", \"false\"\n\n*value* must implements *#to_s* method.\n- See also `#accepted?`.","summary":"Returns true
if the value is the representation of a refusal.
Validates that the value String
is the representation of a refusal.
Validates that the value is in the size array.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(String)"}],"args_string":"(value, size : Array(String))","args_html":"(value, size : Array(String))","location":{"filename":"src/validators/comparisons.cr","line_number":122,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(String)"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"size.includes?(value.size.to_s)"}},{"id":"size?(value,size:Array(Int))-class-method","html_id":"size?(value,size:Array(Int))-class-method","name":"size?","doc":"Validates that the *value* is in the *size* array.\n- See also `#between?`.","summary":"Validates that the value is in the size array.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(Int)"}],"args_string":"(value, size : Array(Int))","args_html":"(value, size : Array(Int))","location":{"filename":"src/validators/comparisons.cr","line_number":117,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(Int)"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"size.includes?(value.size)"}},{"id":"size?(value,size:Range)-class-method","html_id":"size?(value,size:Range)-class-method","name":"size?","doc":"Validates that the *value* is in the *size* range.\n- See also `#between?`.","summary":"Validates that the value is in the size range.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Range"}],"args_string":"(value, size : Range)","args_html":"(value, size : Range)","location":{"filename":"src/validators/comparisons.cr","line_number":111,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Range"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"size.includes?(value.size)"}},{"id":"size?(value,size:String)-class-method","html_id":"size?(value,size:String)-class-method","name":"size?","doc":"Validates that the *value* is equal to the *size*.","summary":"Validates that the value is equal to the size.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"String"}],"args_string":"(value, size : String)","args_html":"(value, size : String)","location":{"filename":"src/validators/comparisons.cr","line_number":105,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"value.size.to_s == size"}},{"id":"size?(value,size:Int)-class-method","html_id":"size?(value,size:Int)-class-method","name":"size?","doc":"Validates that the *value* is equal to the *size*.","summary":"Validates that the value is equal to the size.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Int"}],"args_string":"(value, size : Int)","args_html":"(value, size : Int)","location":{"filename":"src/validators/comparisons.cr","line_number":100,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Int"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"value.size == size"}},{"id":"slug?(value:String,min=1,max=100):Bool-class-method","html_id":"slug?(value:String,min=1,max=100):Bool-class-method","name":"slug?","doc":"Validates that the *value* is a slug.","summary":"Validates that the value is a slug.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"100","external_name":"max","restriction":""}],"args_string":"(value : String, min = 1, max = 100) : Bool","args_html":"(value : String, min = 1, max = 100) : Bool","location":{"filename":"src/validators/uri.cr","line_number":174,"url":null},"def":{"name":"slug?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"100","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(/^([a-zA-Z0-9_-]{#{min},#{max}})$/).nil?"}},{"id":"starts?(value:String,search:Char):Bool-class-method","html_id":"starts?(value:String,search:Char):Bool-class-method","name":"starts?","doc":"Validates that the `String` *value* starts with *search*.\n- See also `#ends?`.\n- See also `#match?`.\n- See also `#in?`.","summary":"Validates that the String
value starts with search.
Validates that the String
value starts with search.
Validates that the String
value starts with search.
Validates that the value is a time String
representation.
Validates that the value is in upper case.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/case_sensitive.cr","line_number":15,"url":null},"def":{"name":"upper?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(!value.blank?) && (value.upcase === value)"}},{"id":"url?(value:String):Bool-class-method","html_id":"url?(value:String):Bool-class-method","name":"url?","doc":"Validates that the *value* is a URL.","summary":"Validates that the value is a URL.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":55,"url":null},"def":{"name":"url?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"size = value.size\nif ((size >= 2083 || size < 11) || (value.match(/[\\s<>]/))) || (value.starts_with?(\"mailto:\"))\n return false\nend\nif m = value.match(@@rx_url)\nelse\n return false\nend\nif self.domain?(\"#{m[\"name\"]}.#{m[\"ext\"]}\")\nelse\n return false\nend\nsp = (value.gsub(/^http(?:s)?:\\/\\//, \"\")).split(\":\")\nif sp.size > 1\n if m_port = sp[1].match(/^[0-9]+/)\n else\n return true\n end\n return self.port?(m_port[0])\nend\ntrue\n"}},{"id":"uuid?(value:String,version=0):Bool-class-method","html_id":"uuid?(value:String,version=0):Bool-class-method","name":"uuid?","doc":"Validates that the *value* is a *UUID*\nVersions: 0 (all), 3, 4 and 5. *version* by default is 0 (all).","summary":"Validates that the value is a UUID Versions: 0 (all), 3, 4 and 5.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"version","doc":null,"default_value":"0","external_name":"version","restriction":""}],"args_string":"(value : String, version = 0) : Bool","args_html":"(value : String, version = 0) : Bool","location":{"filename":"src/validators/format.cr","line_number":103,"url":null},"def":{"name":"uuid?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"version","doc":null,"default_value":"0","external_name":"version","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if @@rx_uuid.has_key?(version)\nelse\n return false\nend\n!value.match(@@rx_uuid[version]).nil?\n"}}],"constructors":[],"instance_methods":[],"macros":[],"types":[{"html_id":"validator/Validator/Error","path":"Validator/Error.html","kind":"class","full_name":"Validator::Error","name":"Error","abstract":false,"superclass":{"html_id":"validator/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"validator/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"validator/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"validator/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/validator.cr","line_number":120,"url":null}],"repository_name":"validator","program":false,"enum":false,"alias":false,"aliased":null,"aliased_html":null,"const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[{"html_id":"validator/Check/ValidationError","kind":"class","full_name":"Check::ValidationError","name":"ValidationError"}],"including_types":[],"namespace":{"html_id":"validator/Validator","kind":"module","full_name":"Validator","name":"Validator"},"doc":"Used by `is!` when a validation is not `true`.","summary":"Used by is!
when a validation is not true
.
An (optional) expressive flavor of Validator
(or Valid
alias).
Same as is
but raise
a Validator::Error
displaying an inspection if the validation is false
.
Standalone check module that provides a practical workflow for validations.
","class_methods":[{"id":"new_validation(errors:Errors)-class-method","html_id":"new_validation(errors:Errors)-class-method","name":"new_validation","doc":"Initializes a new `Validation` instance to combine\na series of checks (`Validation#check`).\nusing an existing *errors* `Hash` (`Check::Errors`).\n\n```\nv = Check.new_validation existing_errors\n```\n\nSame as:\n\n```\nv = Check::Validation.new existing_errors\n```\n\nExample to combine two hashes of validation errors:\n\n```\npreview_validation = Check.new_validation\nv = Check.new_validation preview_validation.errors\n```","summary":"Initializes a new Validation
instance to combine a series of checks (Validation#check
).
Initializes a new Validation
instance to combine a series of checks (Validation#check
).
A mixin to make a class checkable.
","abstract":false,"args":[],"args_string":"","location":{"filename":"src/checkable.cr","line_number":69,"url":null},"def":{"name":"checkable","args":[],"double_splat":null,"splat_index":null,"block_arg":null,"visibility":"Public","body":" include Check::Prop\n include Check::Checkable\n \nextend Check::CheckableStatic\n \n"}},{"id":"rules(**fields)-macro","html_id":"rules(**fields)-macro","name":"rules","doc":"Generates `check`, `check_{{field}}` and `clean_{{field}}` methods for *fields* (class variables).\n\n```\nrequire \"validator/check\"\n\nclass Article\n # Mixin\n Check.checkable\n\n property title : String\n property content : String\n property url : String?\n\n private def self.after_check_content(v : Check::Validation, content : String?, required : Bool, format : Bool)\n puts \"after_check_content\"\n puts \"Valid? #{v.valid?}\"\n content\n end\n\n Check.rules(\n content: {\n required: \"Content is required\", # or `true` to use the default error message\n before_check: ->(v : Check::Validation, content : String?, required : Bool, format : Bool) {\n puts \"before_check_content\"\n content\n },\n after_check: :after_check_email,\n check: {\n not_empty: {\"Article content is required\"},\n between: {\"The article content must be between 10 and 20 000 characters\", 10, 20_000},\n # ...\n },\n clean: {\n type: String,\n to: :to_s,\n # Proc or method name (Symbol)\n format: ->(content : String) { content.strip },\n message: \"Wrong type\",\n },\n },\n url: {\n check: {\n url: {\"Article URL is invalid\"},\n },\n clean: {\n # `nilable` means omited if not provided,\n # regardless of Crystal type (nilable or not)\n nilable: true,\n # Crystal type\n type: String,\n # Converter to the expected typed value\n to: :to_s,\n },\n },\n # ...\n)\nend\n\n# Triggered on all data\nv, article = Article.check(input_data)\n\n# Triggered on all fields of an instance\narticle = Article.new(title: \"foo\", content: \"bar\")\nv = article.check\n\n# Triggered on a value\nv, content = Article.check_content(input_data[\"content\"]?)\n\n# Cast and clean a value\nok, content = Article.clean_content(input_data[\"content\"]?)\n```\n\nSee also `Check.checkable`.","summary":"Generates check
, check_{{field}}
and clean_{{field}}
methods for fields (class variables).
Mixin that adds #check
method to be used with variables of an instance of the class including it.
Lifecycle method triggered after each call of #check
.
Lifecycle method triggered before each call of #check
.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Checks the instance fields and clean them.
","abstract":false,"args":[{"name":"v","doc":null,"default_value":"","external_name":"v","restriction":"Check::Validation"},{"name":"required","doc":null,"default_value":"true","external_name":"required","restriction":"Bool"},{"name":"format","doc":null,"default_value":"true","external_name":"format","restriction":"Bool"}],"args_string":"(v : Check::Validation, required : Bool = true, format : Bool = true) : Validation","args_html":"(v : Check::Validation, required : Bool = true, format : Bool = true) : Validation","location":{"filename":"src/checkable.cr","line_number":618,"url":null},"def":{"name":"check","args":[{"name":"v","doc":null,"default_value":"","external_name":"v","restriction":"Check::Validation"},{"name":"required","doc":null,"default_value":"true","external_name":"required","restriction":"Bool"},{"name":"format","doc":null,"default_value":"true","external_name":"format","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"{% if true %}\n\n # Call lifecycle method before check\n before_check v, required, format\n\n # Check all fields that have a method `#check_{field}`\n {% for ivar in @type.instance_vars.select do |ivar|\n @type.class.has_method?(\"check_#{ivar}\")\nend %}\n v, value = self.class.check_{{ ivar.name }}(v, {{ ivar.name }}, required, format)\n\n # If the field is not nilable and the value is nil,\n # it means that the clean method has failed\n # (to cast or an exception has been raised (and catched) in the formatter)\n # So ignore the nil value if the field is not nilable\n @{{ ivar.name }} = value.as({{ ivar.type }}) {% if !ivar.type.nilable? %} unless value.nil? {% end %}\n {% end %}\n\n # Check methods with `Check::Checker` annotation\n {% for method in @type.methods.select(&.annotation(Checker)) %}\n {{ method.name }} v, required, format\n {% end %}\n\n # Call lifecycle method `#after_check`\n after_check v, required, format\n\n v\n {% end %}"}},{"id":"check!(required:Bool=true,format:Bool=true):self-instance-method","html_id":"check!(required:Bool=true,format:Bool=true):self-instance-method","name":"check!","doc":"Same as `check` but this method raises a `Check::ValidationError`\nif the validation fails or if the clean has not been processed successfully.\n\n```\nmyCheckable.check! # => Returns the current instance.\n```\n\nThis method returns `self`, so it chainable :)\n\n```\nuser.email = \"me@example.org\"\nuser.check!.save\n```","summary":"Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Mixin that adds .check
method to be used with a Hash
.
Lifecycle method triggered after each call of .check
.
Lifecycle method triggered before each call of .check
.
Checks and clean the Hash
for its fields corresponding to class variables that have a .check_{{field}}
method.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Returns a Hash
from a JSON input.
Macro that returns the mapping of the JSON fields
","abstract":false,"args":[],"args_string":" : Hash(String, String)","args_html":" : Hash(String, String)","location":{"filename":"src/checkable.cr","line_number":374,"url":null},"def":{"name":"map_json_keys","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Hash(String, String)","visibility":"Public","body":"map = {} of String => String\n{% if true %}\n {% for ivar in @type.instance_vars %}\n {% ann = ivar.annotation(::JSON::Field) %}\n {% if ann && ann[:ignore] %}{% else %}\n map[{{ ((ann && ann[:key]) || ivar).id.stringify }}] = {{ ivar.id.stringify }}\n {% end %}\n {% end %}\n {% end %}\nmap\n"}},{"id":"to_crystal_h(h:Hash):Hash-instance-method","html_id":"to_crystal_h(h:Hash):Hash-instance-method","name":"to_crystal_h","doc":"Returns a new `Hash` with all JSON keys converted to Crystal keys.","summary":"Returns a new Hash
with all JSON keys converted to Crystal keys.
Returns a new Hash
with all Crystal keys converted to JSON keys.
Declare a method as a checker.
","class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[]},{"html_id":"validator/Check/Errors","path":"Check/Errors.html","kind":"alias","full_name":"Check::Errors","name":"Errors","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/check.cr","line_number":19,"url":null}],"repository_name":"validator","program":false,"enum":false,"alias":true,"aliased":"Hash(String | Symbol, Array(String))","aliased_html":"Hash(String | Symbol, Array(String))","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"validator/Check","kind":"module","full_name":"Check","name":"Check"},"doc":"Validation errors.\nIt's a `Hash` used as a container of errors, in order to handle them easily.\n\n```\nv = Check.new_validation\npp v.errors\n```","summary":"Validation errors.
","class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[]},{"html_id":"validator/Check/Prop","path":"Check/Prop.html","kind":"module","full_name":"Check::Prop","name":"Prop","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/checkable.cr","line_number":77,"url":null}],"repository_name":"validator","program":false,"enum":false,"alias":false,"aliased":null,"aliased_html":null,"const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"validator/Check","kind":"module","full_name":"Check","name":"Check"},"doc":"A mixin to make the `getter` macro of the Crystal std's,\nable to support the rules definition and factory block.","summary":"A mixin to make the getter
macro of the Crystal std's, able to support the rules definition and factory block.
Combines a series of checks into one validation instance, with a customized error message for each case.
","class_methods":[],"constructors":[{"id":"new(errors:Errors)-class-method","html_id":"new(errors:Errors)-class-method","name":"new","doc":"Initializes a validation using an existing *errors* `Hash` (`Check::Errors`).\n\n```\nv = Check::Validation.new\n```\n\nSame as:\n\n```\nv = Check.new_validation\n```","summary":"Initializes a validation using an existing errors Hash
(Check::Errors
).
Initializes a validation.
","abstract":false,"args":[],"args_string":"","args_html":"","location":{"filename":"src/check.cr","line_number":166,"url":null},"def":{"name":"new","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"add_error(key:Symbol|String,message:String):Validation-instance-method","html_id":"add_error(key:Symbol|String,message:String):Validation-instance-method","name":"add_error","doc":"Add a validation error.\n\n```\nv = Check.new_validation\nv.add_error(:foo, \"Foo error!\")\npp v.errors # => {:foo => [\"Foo error!\"]}\n```\n\nSee also: `Errors`","summary":"Add a validation error.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"args_string":"(key : Symbol | String, message : String) : Validation","args_html":"(key : Symbol | String, message : String) : Validation","location":{"filename":"src/check.cr","line_number":204,"url":null},"def":{"name":"add_error","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if message.blank?\n message = \"\\\"#{key}\\\" is not valid.\"\nend\nif @errors.has_key?(key)\nelse\n @errors[key] = Array(String).new\nend\n@errors[key] << message\nself\n"}},{"id":"add_error(key:Symbol|String):Validation-instance-method","html_id":"add_error(key:Symbol|String):Validation-instance-method","name":"add_error","doc":"Add a validation error.\n\n> By default a standard message is used.\n\n```\nv = Check.new_validation\nv.add_error(:foo)\npp v.errors # => {:foo => [\"\\\"foo\\\" is not valid.\"]}\n```\n\nSee also: `Errors`","summary":"Add a validation error.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"}],"args_string":"(key : Symbol | String) : Validation","args_html":"(key : Symbol | String) : Validation","location":{"filename":"src/check.cr","line_number":224,"url":null},"def":{"name":"add_error","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"add_error(key, \"\")\nself\n"}},{"id":"check(key:Symbol|String,message:String,valid:Bool):Validation-instance-method","html_id":"check(key:Symbol|String,message:String,valid:Bool):Validation-instance-method","name":"check","doc":"Checks a validation, often used in sequence.\n\nIf *valid* is `false`, the error *message* is added in the `errors`.\nNothing if *valid* is `true`.\n\n```\nv = Check.new_validation\n\n# -- email\n\nv.check :email, \"The email is required.\", is :presence?, :email, user\nv.check :email, \"#{user[:email]} is an invalid email.\", is :email?, user[:email]?\n\n# -- username\n\nv.check :username, \"The username is required.\", is :presence?, :username, user\n\nv.check(\n :username,\n \"The username must contain at least 2 characters.\",\n is :min?, user[:username]?, 2\n)\n\nv.check(\n :username,\n \"The username must contain a maximum of 20 characters.\",\n is :max?, user[:username]?, 20\n)\n\n# Print all errors\npp v.errors\n```","summary":"Checks a validation, often used in sequence.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"args_string":"(key : Symbol | String, message : String, valid : Bool) : Validation","args_html":"(key : Symbol | String, message : String, valid : Bool) : Validation","location":{"filename":"src/check.cr","line_number":272,"url":null},"def":{"name":"check","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if valid\nelse\n add_error(key, message)\nend\nself\n"}},{"id":"check(key:Symbol|String,valid:Bool,message:String):Validation-instance-method","html_id":"check(key:Symbol|String,valid:Bool,message:String):Validation-instance-method","name":"check","doc":"Checks a validation, often used in sequence.\n\nIf *valid* is `false`, the error *message* is added in the `errors`.\nNothing if *valid* is `true`.\n\n```\nv = Check.new_validation\n\n# -- email\n\nv.check(:email, is(:presence?, :email, user), \"The email is required.\")\nv.check(:email, is(:email?, user[:email]?), \"#{user[:email]} is an invalid email.\")\n\n# -- username\n\nv.check(:username, is(:presence?, :username, user), \"The username is required.\")\n\nv.check(\n :username,\n is :min?, user[:username]?, 2,\n \"The username must contain at least 2 characters.\"\n)\n\nv.check(\n :username,\n is :max?, user[:username]?, 20,\n \"The username must contain a maximum of 20 characters.\"\n)\n\n# Print all errors\npp v.errors\n```","summary":"Checks a validation, often used in sequence.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"args_string":"(key : Symbol | String, valid : Bool, message : String) : Validation","args_html":"(key : Symbol | String, valid : Bool, message : String) : Validation","location":{"filename":"src/check.cr","line_number":309,"url":null},"def":{"name":"check","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if valid\nelse\n add_error(key, message)\nend\nself\n"}},{"id":"check(key:Symbol|String,valid:Bool):Validation-instance-method","html_id":"check(key:Symbol|String,valid:Bool):Validation-instance-method","name":"check","doc":"Checks a validation, often used in sequence.\n\nIf *valid* is `false`, an error message is added in the `errors`.\nNothing if *valid* is `true`.\n\n> Unlike other `check` methods, with this one a default standard message is used.\n\n```\nv = Check.new_validation\n\nv.check(\"email\", Valid.presence?(\"email\", user))\nv.check(\"email\", Valid.email?(user[\"email\"]?))\n\n# Print all errors\npp v.errors\n```","summary":"Checks a validation, often used in sequence.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"args_string":"(key : Symbol | String, valid : Bool) : Validation","args_html":"(key : Symbol | String, valid : Bool) : Validation","location":{"filename":"src/check.cr","line_number":330,"url":null},"def":{"name":"check","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if valid\nelse\n add_error(key, \"\")\nend\nself\n"}},{"id":"errors:Errors-instance-method","html_id":"errors:Errors-instance-method","name":"errors","doc":"Errors container.\n\n```\nv = Check.new_validation\npp v.errors\n```","summary":"Errors container.
","abstract":false,"args":[],"args_string":" : Errors","args_html":" : Errors","location":{"filename":"src/check.cr","line_number":191,"url":null},"def":{"name":"errors","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Errors","visibility":"Public","body":"@errors"}},{"id":"to_exception-instance-method","html_id":"to_exception-instance-method","name":"to_exception","doc":"Creates a new instance of `ValidationError` (`Exception`).","summary":"Creates a new instance of ValidationError
(Exception
).
Returns true
if there is no error, false
if there is one or more errors.
Validation error.
","class_methods":[],"constructors":[{"id":"new(errors:Errors,message="Validationerror")-class-method","html_id":"new(errors:Errors,message="Validationerror")-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[{"name":"errors","doc":null,"default_value":"","external_name":"errors","restriction":"Errors"},{"name":"message","doc":null,"default_value":"\"Validation error\"","external_name":"message","restriction":""}],"args_string":"(errors : Errors, message = "Validation error")","args_html":"(errors : Errors, message = "Validation error")","location":{"filename":"src/check.cr","line_number":24,"url":null},"def":{"name":"new","args":[{"name":"errors","doc":null,"default_value":"","external_name":"errors","restriction":"Errors"},{"name":"message","doc":null,"default_value":"\"Validation error\"","external_name":"message","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize(errors, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"errors:Errors-instance-method","html_id":"errors:Errors-instance-method","name":"errors","doc":"Returns `Errors` container (`Hash`).","summary":"Returns Errors
container (Hash
).
Alias of Validator
∠(・.-)―〉 →◎ validator
is a Crystal data validation module.
Validates the absence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : String | Symbol, list : NamedTuple) : Bool","args_html":"(key : String | Symbol, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":47,"url":null},"def":{"name":"absence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.empty?(list[key]?)"}},{"id":"absence?(key:String|Symbol|Number,list:Hash):Bool-class-method","html_id":"absence?(key:String|Symbol|Number,list:Hash):Bool-class-method","name":"absence?","doc":"Validates the absence of the value.\n- See also `#not_in?`.\n- See also `#empty?`.","summary":"Validates the absence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : String | Symbol | Number, list : Hash) : Bool","args_html":"(key : String | Symbol | Number, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":42,"url":null},"def":{"name":"absence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.empty?(list[key]?)"}},{"id":"accepted?(value:String):Bool-class-method","html_id":"accepted?(value:String):Bool-class-method","name":"accepted?","doc":"Validates that the *value* `String` is the representation of an acceptance.\n> One of: \"yes\", \"y\", \"on\", \"o\", \"ok\", \"1\", \"true\"\n- See also `#refused?`.","summary":"Validates that the value String
is the representation of an acceptance.
Validates that the value is the representation of an acceptance.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"args_string":"(value) : Bool","args_html":"(value) : Bool","location":{"filename":"src/validators/presence.cr","line_number":189,"url":null},"def":{"name":"accepted?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.accepted?(value.to_s)"}},{"id":"ascii_only?(value:String):Bool-class-method","html_id":"ascii_only?(value:String):Bool-class-method","name":"ascii_only?","doc":"Validates that the *value* `String`\nis comprised in its entirety by ASCII characters.","summary":"Validates that the value String
is comprised in its entirety by ASCII characters.
Validates that all the String
in the values Array
are comprised in their entirety by ASCII characters.
Validates that the value has the format base64.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/format.cr","line_number":87,"url":null},"def":{"name":"base64?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if (value.match(@@rx_base64)) && ((value.size % 4) === 0)\n return true\nend\nfalse\n"}},{"id":"between?(value,min,max):Bool-class-method","html_id":"between?(value,min,max):Bool-class-method","name":"between?","doc":"Validates that the *value* is between (inclusive) *min* and *max*.","summary":"Validates that the value is between (inclusive) min and max.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"args_string":"(value, min, max) : Bool","args_html":"(value, min, max) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":87,"url":null},"def":{"name":"between?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value >= min && value <= max"}},{"id":"between?(value:String|Array,min:Int,max:Int):Bool-class-method","html_id":"between?(value:String|Array,min:Int,max:Int):Bool-class-method","name":"between?","doc":"Validates that the size of the *value* (`String` or `Array`) is between\n(inclusive) *min* and *max*.\n- See also `#size?`.","summary":"Validates that the size of the value (String
or Array
) is between (inclusive) min and max.
Validates that the value is an email.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":161,"url":null},"def":{"name":"email?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"size = value.size\nif size > 60 || size < 7\n return false\nend\nif value.includes?(\"..\")\n return false\nend\nif value.includes?(\"--\")\n return false\nend\nif value.includes?(\"___\")\n return false\nend\nif m = value.match(@@rx_email)\nelse\n return false\nend\nself.domain?(\"#{m[\"name\"]}.#{m[\"ext\"]}\")\n"}},{"id":"empty?(value):Bool-class-method","html_id":"empty?(value):Bool-class-method","name":"empty?","doc":"Validates that the *value* is empty.\n- See also `#absence?`.\n- See also `#not_in?`.","summary":"Validates that the value is empty.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"args_string":"(value) : Bool","args_html":"(value) : Bool","location":{"filename":"src/validators/presence.cr","line_number":58,"url":null},"def":{"name":"empty?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"case value\nwhen .nil?\n true\nwhen .is_a?(String)\n value.presence.nil?\nwhen .is_a?(Number)\n value == 0\nwhen .responds_to?(:size)\n value.size == 0\nelse\n false\nend"}},{"id":"ends?(value:String,search:String):Bool-class-method","html_id":"ends?(value:String,search:String):Bool-class-method","name":"ends?","doc":"Validates that the `String` *value* ends with *search*.\n- See also `#starts?`.\n- See also `#match?`.\n- See also `#in?`.","summary":"Validates that the String
value ends with search.
Validates that the String
value ends with search.
Validates that the String
value ends with search.
Validates that the value is equal to another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":10,"url":null},"def":{"name":"eq?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value == another_value"}},{"id":"gt?(value,another_value):Bool-class-method","html_id":"gt?(value,another_value):Bool-class-method","name":"gt?","doc":"Validates that the *value* is greater than *another_value*.","summary":"Validates that the value is greater than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":15,"url":null},"def":{"name":"gt?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value > another_value"}},{"id":"gt?(value:String|Array,limit:Int):Bool-class-method","html_id":"gt?(value:String|Array,limit:Int):Bool-class-method","name":"gt?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis greater than *limit* number.","summary":"Validates that the size of the value (String
or Array
) is greater than limit number.
Validates that the value is equal to or greater than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":27,"url":null},"def":{"name":"gte?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value >= another_value"}},{"id":"gte?(value:String|Array,min:Int):Bool-class-method","html_id":"gte?(value:String|Array,min:Int):Bool-class-method","name":"gte?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis greater than *min* number.\n> Similar to `#min`.","summary":"Validates that the size of the value (String
or Array
) is greater than min number.
Validates that the String
value does denote a representation of a hexadecimal string.
Validates that the Bytes
value does denote a representation of a hexadecimal slice of Bytes.
Validates that the String
value does denote a representation of a hexadecimal color.
Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"args_string":"(value, list : Array) : Bool","args_html":"(value, list : Array) : Bool","location":{"filename":"src/validators/presence.cr","line_number":109,"url":null},"def":{"name":"in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.includes?(value)"}},{"id":"in?(value:String,str:String):Bool-class-method","html_id":"in?(value:String,str:String):Bool-class-method","name":"in?","doc":"Validates that the (*str*) `String` contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (str) String
contains the value.
Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : Symbol | String, list : Hash) : Bool","args_html":"(key : Symbol | String, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":129,"url":null},"def":{"name":"in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.has_key?(key)"}},{"id":"in?(key:Symbol|String,list:NamedTuple):Bool-class-method","html_id":"in?(key:Symbol|String,list:NamedTuple):Bool-class-method","name":"in?","doc":"Validates that the (*list*) contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : Symbol | String, list : NamedTuple) : Bool","args_html":"(key : Symbol | String, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":124,"url":null},"def":{"name":"in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.has_key?(key)"}},{"id":"in?(value,list:Range):Bool-class-method","html_id":"in?(value,list:Range):Bool-class-method","name":"in?","doc":"Validates that the (*list*) contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"args_string":"(value, list : Range) : Bool","args_html":"(value, list : Range) : Bool","location":{"filename":"src/validators/presence.cr","line_number":119,"url":null},"def":{"name":"in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.includes?(value)"}},{"id":"in?(value,list:Tuple):Bool-class-method","html_id":"in?(value,list:Tuple):Bool-class-method","name":"in?","doc":"Validates that the (*list*) contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"args_string":"(value, list : Tuple) : Bool","args_html":"(value, list : Tuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":114,"url":null},"def":{"name":"in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.includes?(value)"}},{"id":"ip?(value:String):Bool-class-method","html_id":"ip?(value:String):Bool-class-method","name":"ip?","doc":"Validates that the *value* is an IP (IPv4 or IPv6).","summary":"Validates that the value is an IP (IPv4 or IPv6).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":80,"url":null},"def":{"name":"ip?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(self.ipv4?(value)) || (self.ipv6?(value))"}},{"id":"ipv4?(value:String):Bool-class-method","html_id":"ipv4?(value:String):Bool-class-method","name":"ipv4?","doc":"Validates that the *value* is an IPv4.","summary":"Validates that the value is an IPv4.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":85,"url":null},"def":{"name":"ipv4?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_ipv4).nil?"}},{"id":"ipv6?(value:String):Bool-class-method","html_id":"ipv6?(value:String):Bool-class-method","name":"ipv6?","doc":"Validates that the *value* is an IPv6.","summary":"Validates that the value is an IPv6.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":90,"url":null},"def":{"name":"ipv6?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"addr_and_zone = [value]\nif value.includes?('%')\n addr_and_zone = value.split('%')\n if addr_and_zone.size == 2\n else\n return false\n end\n if addr_and_zone[0].includes?(':')\n else\n return false\n end\n if addr_and_zone[1] == \"\"\n return false\n end\nend\nblocks = addr_and_zone[0].split(':')\nfound_omission_block = false\nfound_ipv4_transition_block = self.ipv4?(blocks[blocks.size - 1])\nexpected_number_of_blocks = found_ipv4_transition_block ? 7 : 8\nif blocks.size > expected_number_of_blocks\n return false\nend\nif value == \"::\"\n return true\nend\nif value[0...2] == \"::\"\n blocks.shift(2)\n found_omission_block = true\nelse\n if value[(value.size - 2)..] == \"::\"\n blocks.pop(2)\n found_omission_block = true\n end\nend\ni = 0\nwhile i < blocks.size\n if ((blocks[i] === \"\") && i > 0) && i < (blocks.size - 1)\n if found_omission_block\n return false\n end\n found_omission_block = true\n else\n if (!(found_ipv4_transition_block && (i == (blocks.size - 1)))) && blocks[i].match(@@rx_ipv6_block).nil?\n return false\n end\n end\n i = i + 1\nend\nif found_omission_block\n return blocks.size >= 1\nend\nblocks.size == expected_number_of_blocks\n"}},{"id":"json?(value:String,strict:Bool=true):Bool-class-method","html_id":"json?(value:String,strict:Bool=true):Bool-class-method","name":"json?","doc":"Validates that the *value* represents a JSON string.\n*strict* to `true` (default) to try to parse the JSON,\nreturns `false` if the parsing fails.\nIf *strict* is `false`, only the first char and the last char are checked.","summary":"Validates that the value represents a JSON string.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"strict","doc":null,"default_value":"true","external_name":"strict","restriction":"Bool"}],"args_string":"(value : String, strict : Bool = true) : Bool","args_html":"(value : String, strict : Bool = true) : Bool","location":{"filename":"src/validators/format.cr","line_number":64,"url":null},"def":{"name":"json?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"strict","doc":null,"default_value":"true","external_name":"strict","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if strict\n begin\n JSON.parse(value)\n rescue err\n return false\n else\n return true\n end\nend\n((self.starts?(value, \"{\")) && (self.ends?(value, \"}\"))) || ((self.starts?(value, \"[\")) && (self.ends?(value, \"]\")))\n"}},{"id":"jwt?(value:String):Bool-class-method","html_id":"jwt?(value:String):Bool-class-method","name":"jwt?","doc":"Validates that the *value* is a *JSON Web Token*.","summary":"Validates that the value is a JSON Web Token.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/format.cr","line_number":95,"url":null},"def":{"name":"jwt?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_jwt).nil?"}},{"id":"lat?(value:String|Float):Bool-class-method","html_id":"lat?(value:String|Float):Bool-class-method","name":"lat?","doc":"Validates that the *value* is a valid format representation of a geographical latitude.\n- See also `#lng?`.\n- See also `#lat_lng?`.","summary":"Validates that the value is a valid format representation of a geographical latitude.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"args_string":"(value : String | Float) : Bool","args_html":"(value : String | Float) : Bool","location":{"filename":"src/validators/geo.cr","line_number":31,"url":null},"def":{"name":"lat?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.to_s.match(@@rx_geo_lat).nil?"}},{"id":"lat_lng?(value:String):Bool-class-method","html_id":"lat_lng?(value:String):Bool-class-method","name":"lat_lng?","doc":"Validates that the *value* is a valid format representation of\na geographical position (given in latitude and longitude).\n- See also `#lat?`.\n- See also `#lng?`.","summary":"Validates that the value is a valid format representation of a geographical position (given in latitude and longitude).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/geo.cr","line_number":16,"url":null},"def":{"name":"lat_lng?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if !(value.includes?(\",\"))\n return false\nend\nlat, lng = value.split(\",\")\nif lat && lng\nelse\n return false\nend\nif ((lat.starts_with?('(')) && (!(lng.ends_with?(')'))))\n return false\nend\nif ((lng.ends_with?(')')) && (!(lat.starts_with?('('))))\n return false\nend\nif (lat.match(@@rx_geo_lat)) && (lng.match(@@rx_geo_lng))\n return true\nend\nfalse\n"}},{"id":"lng?(value:String|Float):Bool-class-method","html_id":"lng?(value:String|Float):Bool-class-method","name":"lng?","doc":"Validates that the *value* is a valid format representation of a geographical longitude.\n- See also `#lat?`.\n- See also `#lat_lng?`.","summary":"Validates that the value is a valid format representation of a geographical longitude.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"args_string":"(value : String | Float) : Bool","args_html":"(value : String | Float) : Bool","location":{"filename":"src/validators/geo.cr","line_number":38,"url":null},"def":{"name":"lng?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.to_s.match(@@rx_geo_lng).nil?"}},{"id":"lower?(value:String):Bool-class-method","html_id":"lower?(value:String):Bool-class-method","name":"lower?","doc":"Validates that the *value* is in lower case.","summary":"Validates that the value is in lower case.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/case_sensitive.cr","line_number":10,"url":null},"def":{"name":"lower?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(!value.blank?) && (value.downcase === value)"}},{"id":"lt?(value:String|Array,limit:Int):Bool-class-method","html_id":"lt?(value:String|Array,limit:Int):Bool-class-method","name":"lt?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis lesser than *limit* number.","summary":"Validates that the size of the value (String
or Array
) is lesser than limit number.
Validates that the value is lesser than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":39,"url":null},"def":{"name":"lt?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value < another_value"}},{"id":"lte?(value:String|Array,max:Int):Bool-class-method","html_id":"lte?(value:String|Array,max:Int):Bool-class-method","name":"lte?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis equal or lesser than *max* number.\n> Similar to `#max`.","summary":"Validates that the size of the value (String
or Array
) is equal or lesser than max number.
Validates that the value is equal to or lesser than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":51,"url":null},"def":{"name":"lte?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value <= another_value"}},{"id":"mac_addr?(value:String,no_colons:Bool=false):Bool-class-method","html_id":"mac_addr?(value:String,no_colons:Bool=false):Bool-class-method","name":"mac_addr?","doc":"Validates that the *value* is a MAC address.","summary":"Validates that the value is a MAC address.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"no_colons","doc":null,"default_value":"false","external_name":"no_colons","restriction":"Bool"}],"args_string":"(value : String, no_colons : Bool = false) : Bool","args_html":"(value : String, no_colons : Bool = false) : Bool","location":{"filename":"src/validators/uri.cr","line_number":179,"url":null},"def":{"name":"mac_addr?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"no_colons","doc":null,"default_value":"false","external_name":"no_colons","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if no_colons\n return !value.match(@@rx_mac_addr_no_colons).nil?\nend\n(((!value.match(@@rx_mac_addr).nil?) || (!value.match(@@rx_mac_addr_with_hyphen).nil?)) || (!value.match(@@rx_mac_addr_with_spaces).nil?)) || (!value.match(@@rx_mac_addr_with_dots).nil?)\n"}},{"id":"magnet_uri?(value:String):Bool-class-method","html_id":"magnet_uri?(value:String):Bool-class-method","name":"magnet_uri?","doc":"Validates that the *value* is a Magnet URI.","summary":"Validates that the value is a Magnet URI.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":189,"url":null},"def":{"name":"magnet_uri?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_magnet_uri).nil?"}},{"id":"match?(value:Number,pattern:Regex):Bool-class-method","html_id":"match?(value:Number,pattern:Regex):Bool-class-method","name":"match?","doc":"Validates that the *value* matches the *pattern*.","summary":"Validates that the value matches the pattern.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"Number"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"args_string":"(value : Number, pattern : Regex) : Bool","args_html":"(value : Number, pattern : Regex) : Bool","location":{"filename":"src/validators/presence.cr","line_number":15,"url":null},"def":{"name":"match?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"Number"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.to_s.match(pattern).nil?"}},{"id":"match?(value:String,pattern:Regex):Bool-class-method","html_id":"match?(value:String,pattern:Regex):Bool-class-method","name":"match?","doc":"Validates that the *value* matches the *pattern*.","summary":"Validates that the value matches the pattern.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"args_string":"(value : String, pattern : Regex) : Bool","args_html":"(value : String, pattern : Regex) : Bool","location":{"filename":"src/validators/presence.cr","line_number":10,"url":null},"def":{"name":"match?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(pattern).nil?"}},{"id":"max?(value,max):Bool-class-method","html_id":"max?(value,max):Bool-class-method","name":"max?","doc":"Validates that the *value* is equal to or lesser than *max* (inclusive).\n> Similar to `#lte`.","summary":"Validates that the value is equal to or lesser than max (inclusive).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"args_string":"(value, max) : Bool","args_html":"(value, max) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":76,"url":null},"def":{"name":"max?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value <= max"}},{"id":"max?(value:String|Array,max:Int):Bool-class-method","html_id":"max?(value:String|Array,max:Int):Bool-class-method","name":"max?","doc":":ditto:\n> Based on the size of the `String`.","summary":":ditto: > Based on the size of the String
.
Validates that the value has the format md5.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/format.cr","line_number":82,"url":null},"def":{"name":"md5?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_md5).nil?"}},{"id":"min?(value,min):Bool-class-method","html_id":"min?(value,min):Bool-class-method","name":"min?","doc":"Validates that the *value* is equal to or greater than *min* (inclusive).\n> Similar to `#gte`.","summary":"Validates that the value is equal to or greater than min (inclusive).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""}],"args_string":"(value, min) : Bool","args_html":"(value, min) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":64,"url":null},"def":{"name":"min?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value >= min"}},{"id":"min?(value:String|Array,min:Int):Bool-class-method","html_id":"min?(value:String|Array,min:Int):Bool-class-method","name":"min?","doc":":ditto:\n> Based on the size of the `String`.","summary":":ditto: > Based on the size of the String
.
Validates that the Bytes
value does denote a representation of a MongoID slice of Bytes.
Validates that the String
value does denote a representation of a MongoID string.
Validates that the value is not empty.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"args_string":"(value) : Bool","args_html":"(value) : Bool","location":{"filename":"src/validators/presence.cr","line_number":71,"url":null},"def":{"name":"not_empty?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(self.empty?(value)) == false"}},{"id":"not_in?(value:String,str:String):Bool-class-method","html_id":"not_in?(value:String,str:String):Bool-class-method","name":"not_in?","doc":"Validates that the (*str*) `String` does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (str) String
does not contain the value.
Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"args_string":"(value, list : Array) : Bool","args_html":"(value, list : Array) : Bool","location":{"filename":"src/validators/presence.cr","line_number":149,"url":null},"def":{"name":"not_in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.includes?(value))"}},{"id":"not_in?(value,list:Tuple):Bool-class-method","html_id":"not_in?(value,list:Tuple):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"args_string":"(value, list : Tuple) : Bool","args_html":"(value, list : Tuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":154,"url":null},"def":{"name":"not_in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.includes?(value))"}},{"id":"not_in?(value,list:Range):Bool-class-method","html_id":"not_in?(value,list:Range):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"args_string":"(value, list : Range) : Bool","args_html":"(value, list : Range) : Bool","location":{"filename":"src/validators/presence.cr","line_number":159,"url":null},"def":{"name":"not_in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.includes?(value))"}},{"id":"not_in?(key:Symbol|String,list:NamedTuple):Bool-class-method","html_id":"not_in?(key:Symbol|String,list:NamedTuple):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : Symbol | String, list : NamedTuple) : Bool","args_html":"(key : Symbol | String, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":164,"url":null},"def":{"name":"not_in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.has_key?(key))"}},{"id":"not_in?(key:Symbol|String,list:Hash):Bool-class-method","html_id":"not_in?(key:Symbol|String,list:Hash):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : Symbol | String, list : Hash) : Bool","args_html":"(key : Symbol | String, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":169,"url":null},"def":{"name":"not_in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.has_key?(key))"}},{"id":"not_null?(value):Bool-class-method","html_id":"not_null?(value):Bool-class-method","name":"not_null?","doc":"Validates that the *value* is not null (`nil`).\n- See also `#null?`.\n- See also `#not_empty?`.","summary":"Validates that the value is not null (nil
).
Validates that the value is null (nil
).
Validates that the value is a numeric String
representation.
Validates that the value is in a valid port range, between (inclusive) 1 / min and 65535 / max.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"\"0\"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"\"1\"","external_name":"min","restriction":"String"},{"name":"max","doc":null,"default_value":"\"65535\"","external_name":"max","restriction":"String"}],"args_string":"(value : String = "0", min : String = "1", max : String = "65535") : Bool","args_html":"(value : String = "0", min : String = "1", max : String = "65535") : Bool","location":{"filename":"src/validators/uri.cr","line_number":47,"url":null},"def":{"name":"port?","args":[{"name":"value","doc":null,"default_value":"\"0\"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"\"1\"","external_name":"min","restriction":"String"},{"name":"max","doc":null,"default_value":"\"65535\"","external_name":"max","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if (self.number?(min)) && (self.number?(max))\nelse\n return false\nend\nself.port?(value.to_i, min.to_i, max.to_i)\n"}},{"id":"port?(value=0,min=1,max=65535):Bool-class-method","html_id":"port?(value=0,min=1,max=65535):Bool-class-method","name":"port?","doc":"Validates that the *value* is in a valid port range,\nbetween (inclusive) 1 / *min* and 65535 / *max*.","summary":"Validates that the value is in a valid port range, between (inclusive) 1 / min and 65535 / max.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"0","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"65535","external_name":"max","restriction":""}],"args_string":"(value = 0, min = 1, max = 65535) : Bool","args_html":"(value = 0, min = 1, max = 65535) : Bool","location":{"filename":"src/validators/uri.cr","line_number":41,"url":null},"def":{"name":"port?","args":[{"name":"value","doc":null,"default_value":"0","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"65535","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if self.between?(value, 1, 65535)\nelse\n return false\nend\nself.between?(value, min, max)\n"}},{"id":"presence?(key:String|Symbol,list:NamedTuple):Bool-class-method","html_id":"presence?(key:String|Symbol,list:NamedTuple):Bool-class-method","name":"presence?","doc":"Validates the presence of the value.\n- See also `#in?`.\n- See also `#not_empty?`.","summary":"Validates the presence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : String | Symbol, list : NamedTuple) : Bool","args_html":"(key : String | Symbol, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":31,"url":null},"def":{"name":"presence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.not_empty?(list[key]?)"}},{"id":"presence?(key:String|Symbol|Number,list:Hash):Bool-class-method","html_id":"presence?(key:String|Symbol|Number,list:Hash):Bool-class-method","name":"presence?","doc":"Validates the presence of the value.\n- See also `#in?`.\n- See also `#not_empty?`.","summary":"Validates the presence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : String | Symbol | Number, list : Hash) : Bool","args_html":"(key : String | Symbol | Number, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":26,"url":null},"def":{"name":"presence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.not_empty?(list[key]?)"}},{"id":"refused?(value):Bool-class-method","html_id":"refused?(value):Bool-class-method","name":"refused?","doc":"Returns `true` if the *value* is the representation of a refusal.\n> One of: \"no\", \"n\", \"off\", \"0\", \"false\"\n\n*value* must implements *#to_s* method.\n- See also `#accepted?`.","summary":"Returns true
if the value is the representation of a refusal.
Validates that the value String
is the representation of a refusal.
Validates that the value is in the size array.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(String)"}],"args_string":"(value, size : Array(String))","args_html":"(value, size : Array(String))","location":{"filename":"src/validators/comparisons.cr","line_number":122,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(String)"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"size.includes?(value.size.to_s)"}},{"id":"size?(value,size:Array(Int))-class-method","html_id":"size?(value,size:Array(Int))-class-method","name":"size?","doc":"Validates that the *value* is in the *size* array.\n- See also `#between?`.","summary":"Validates that the value is in the size array.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(Int)"}],"args_string":"(value, size : Array(Int))","args_html":"(value, size : Array(Int))","location":{"filename":"src/validators/comparisons.cr","line_number":117,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(Int)"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"size.includes?(value.size)"}},{"id":"size?(value,size:Range)-class-method","html_id":"size?(value,size:Range)-class-method","name":"size?","doc":"Validates that the *value* is in the *size* range.\n- See also `#between?`.","summary":"Validates that the value is in the size range.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Range"}],"args_string":"(value, size : Range)","args_html":"(value, size : Range)","location":{"filename":"src/validators/comparisons.cr","line_number":111,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Range"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"size.includes?(value.size)"}},{"id":"size?(value,size:String)-class-method","html_id":"size?(value,size:String)-class-method","name":"size?","doc":"Validates that the *value* is equal to the *size*.","summary":"Validates that the value is equal to the size.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"String"}],"args_string":"(value, size : String)","args_html":"(value, size : String)","location":{"filename":"src/validators/comparisons.cr","line_number":105,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"value.size.to_s == size"}},{"id":"size?(value,size:Int)-class-method","html_id":"size?(value,size:Int)-class-method","name":"size?","doc":"Validates that the *value* is equal to the *size*.","summary":"Validates that the value is equal to the size.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Int"}],"args_string":"(value, size : Int)","args_html":"(value, size : Int)","location":{"filename":"src/validators/comparisons.cr","line_number":100,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Int"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"value.size == size"}},{"id":"slug?(value:String,min=1,max=100):Bool-class-method","html_id":"slug?(value:String,min=1,max=100):Bool-class-method","name":"slug?","doc":"Validates that the *value* is a slug.","summary":"Validates that the value is a slug.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"100","external_name":"max","restriction":""}],"args_string":"(value : String, min = 1, max = 100) : Bool","args_html":"(value : String, min = 1, max = 100) : Bool","location":{"filename":"src/validators/uri.cr","line_number":174,"url":null},"def":{"name":"slug?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"100","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(/^([a-zA-Z0-9_-]{#{min},#{max}})$/).nil?"}},{"id":"starts?(value:String,search:Char):Bool-class-method","html_id":"starts?(value:String,search:Char):Bool-class-method","name":"starts?","doc":"Validates that the `String` *value* starts with *search*.\n- See also `#ends?`.\n- See also `#match?`.\n- See also `#in?`.","summary":"Validates that the String
value starts with search.
Validates that the String
value starts with search.
Validates that the String
value starts with search.
Validates that the value is a time String
representation.
Validates that the value is in upper case.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/case_sensitive.cr","line_number":15,"url":null},"def":{"name":"upper?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(!value.blank?) && (value.upcase === value)"}},{"id":"url?(value:String):Bool-class-method","html_id":"url?(value:String):Bool-class-method","name":"url?","doc":"Validates that the *value* is a URL.","summary":"Validates that the value is a URL.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":55,"url":null},"def":{"name":"url?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"size = value.size\nif ((size >= 2083 || size < 11) || (value.match(/[\\s<>]/))) || (value.starts_with?(\"mailto:\"))\n return false\nend\nif m = value.match(@@rx_url)\nelse\n return false\nend\nif self.domain?(\"#{m[\"name\"]}.#{m[\"ext\"]}\")\nelse\n return false\nend\nsp = (value.gsub(/^http(?:s)?:\\/\\//, \"\")).split(\":\")\nif sp.size > 1\n if m_port = sp[1].match(/^[0-9]+/)\n else\n return true\n end\n return self.port?(m_port[0])\nend\ntrue\n"}},{"id":"uuid?(value:String,version=0):Bool-class-method","html_id":"uuid?(value:String,version=0):Bool-class-method","name":"uuid?","doc":"Validates that the *value* is a *UUID*\nVersions: 0 (all), 3, 4 and 5. *version* by default is 0 (all).","summary":"Validates that the value is a UUID Versions: 0 (all), 3, 4 and 5.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"version","doc":null,"default_value":"0","external_name":"version","restriction":""}],"args_string":"(value : String, version = 0) : Bool","args_html":"(value : String, version = 0) : Bool","location":{"filename":"src/validators/format.cr","line_number":103,"url":null},"def":{"name":"uuid?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"version","doc":null,"default_value":"0","external_name":"version","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if @@rx_uuid.has_key?(version)\nelse\n return false\nend\n!value.match(@@rx_uuid[version]).nil?\n"}}],"constructors":[],"instance_methods":[],"macros":[],"types":[{"html_id":"validator/Validator/Error","path":"Validator/Error.html","kind":"class","full_name":"Validator::Error","name":"Error","abstract":false,"superclass":{"html_id":"validator/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"validator/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"validator/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"validator/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/validator.cr","line_number":120,"url":null}],"repository_name":"validator","program":false,"enum":false,"alias":false,"aliased":null,"aliased_html":null,"const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"validator/Validator","kind":"module","full_name":"Validator","name":"Validator"},"doc":"Used by `is!` when a validation is not `true`.","summary":"Used by is!
when a validation is not true
.
An (optional) expressive flavor of Validator
(or Valid
alias).
Same as is
but raise
a Validator::Error
displaying an inspection if the validation is false
.
Standalone check module that provides a practical workflow for validations.
","class_methods":[{"id":"new_validation(errors:Errors)-class-method","html_id":"new_validation(errors:Errors)-class-method","name":"new_validation","doc":"Initializes a new `Validation` instance to combine\na series of checks (`Validation#check`).\nusing an existing *errors* `Hash` (`Check::Errors`).\n\n```\nv = Check.new_validation existing_errors\n```\n\nSame as:\n\n```\nv = Check::Validation.new existing_errors\n```\n\nExample to combine two hashes of validation errors:\n\n```\npreview_validation = Check.new_validation\nv = Check.new_validation preview_validation.errors\n```","summary":"Initializes a new Validation
instance to combine a series of checks (Validation#check
).
Initializes a new Validation
instance to combine a series of checks (Validation#check
).
A mixin to make a class checkable.
","abstract":false,"args":[],"args_string":"","location":{"filename":"src/checkable.cr","line_number":69,"url":null},"def":{"name":"checkable","args":[],"double_splat":null,"splat_index":null,"block_arg":null,"visibility":"Public","body":" include Check::Prop\n include Check::Checkable\n \nextend Check::CheckableStatic\n \n"}},{"id":"rules(**fields)-macro","html_id":"rules(**fields)-macro","name":"rules","doc":"Generates `check`, `check_{{field}}` and `clean_{{field}}` methods for *fields* (class variables).\n\n```\nrequire \"validator/check\"\n\nclass Article\n # Mixin\n Check.checkable\n\n property title : String\n property content : String\n property url : String?\n\n private def self.after_check_content(v : Check::Validation, content : String?, required : Bool, format : Bool)\n puts \"after_check_content\"\n puts \"Valid? #{v.valid?}\"\n content\n end\n\n Check.rules(\n content: {\n required: \"Content is required\", # or `true` to use the default error message\n before_check: ->(v : Check::Validation, content : String?, required : Bool, format : Bool) {\n puts \"before_check_content\"\n content\n },\n after_check: :after_check_email,\n check: {\n not_empty: {\"Article content is required\"},\n between: {\"The article content must be between 10 and 20 000 characters\", 10, 20_000},\n # ...\n },\n clean: {\n type: String,\n to: :to_s,\n # Proc or method name (Symbol)\n format: ->(content : String) { content.strip },\n message: \"Wrong type\",\n },\n },\n url: {\n check: {\n url: {\"Article URL is invalid\"},\n },\n clean: {\n # `nilable` means omited if not provided,\n # regardless of Crystal type (nilable or not)\n nilable: true,\n # Crystal type\n type: String,\n # Converter to the expected typed value\n to: :to_s,\n },\n },\n # ...\n)\nend\n\n# Triggered on all data\nv, article = Article.check(input_data)\n\n# Triggered on all fields of an instance\narticle = Article.new(title: \"foo\", content: \"bar\")\nv = article.check\n\n# Triggered on a value\nv, content = Article.check_content(input_data[\"content\"]?)\n\n# Cast and clean a value\nok, content = Article.clean_content(input_data[\"content\"]?)\n```\n\nSee also `Check.checkable`.","summary":"Generates check
, check_{{field}}
and clean_{{field}}
methods for fields (class variables).
Mixin that adds #check
method to be used with variables of an instance of the class including it.
Lifecycle method triggered after each call of #check
.
Lifecycle method triggered before each call of #check
.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Checks the instance fields and clean them.
","abstract":false,"args":[{"name":"v","doc":null,"default_value":"","external_name":"v","restriction":"Check::Validation"},{"name":"required","doc":null,"default_value":"true","external_name":"required","restriction":"Bool"},{"name":"format","doc":null,"default_value":"true","external_name":"format","restriction":"Bool"}],"args_string":"(v : Check::Validation, required : Bool = true, format : Bool = true) : Validation","args_html":"(v : Check::Validation, required : Bool = true, format : Bool = true) : Validation","location":{"filename":"src/checkable.cr","line_number":628,"url":null},"def":{"name":"check","args":[{"name":"v","doc":null,"default_value":"","external_name":"v","restriction":"Check::Validation"},{"name":"required","doc":null,"default_value":"true","external_name":"required","restriction":"Bool"},{"name":"format","doc":null,"default_value":"true","external_name":"format","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"{% if true %}\n\n # Call lifecycle method before check\n before_check v, required, format\n\n # Check all fields that have a method `#check_{field}`\n {% for ivar in @type.instance_vars.select do |ivar|\n @type.class.has_method?(\"check_#{ivar}\")\nend %}\n v, value = self.class.check_{{ ivar.name }}(v, {{ ivar.name }}, required, format)\n\n # If the field is not nilable and the value is nil,\n # it means that the clean method has failed\n # (to cast or an exception has been raised (and catched) in the formatter)\n # So ignore the nil value if the field is not nilable\n @{{ ivar.name }} = value.as({{ ivar.type }}) {% if !ivar.type.nilable? %} unless value.nil? {% end %}\n {% end %}\n\n # Check methods with `Check::Checker` annotation\n {% for method in @type.methods.select(&.annotation(Checker)) %}\n {{ method.name }} v, required, format\n {% end %}\n\n # Call lifecycle method `#after_check`\n after_check v, required, format\n\n v\n {% end %}"}},{"id":"check!(required:Bool=true,format:Bool=true):self-instance-method","html_id":"check!(required:Bool=true,format:Bool=true):self-instance-method","name":"check!","doc":"Same as `check` but this method raises a `Check::ValidationError`\nif the validation fails or if the clean has not been processed successfully.\n\n```\nmyCheckable.check! # => Returns the current instance.\n```\n\nThis method returns `self`, so it chainable :)\n\n```\nuser.email = \"me@example.org\"\nuser.check!.save\n```","summary":"Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Mixin that adds .check
method to be used with a Hash
.
Lifecycle method triggered after each call of .check
.
Lifecycle method triggered before each call of .check
.
Checks and clean the Hash
for its fields corresponding to class variables that have a .check_{{field}}
method.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Same as #check
but this method raises a Check::ValidationError
if the validation fails or if the clean has not been processed successfully.
Returns a json Hash
from a JSON input.
Returns a json Hash
from a JSON input.
Macro that returns the mapping of the JSON fields
","abstract":false,"args":[],"args_string":" : Hash(String, String)","args_html":" : Hash(String, String)","location":{"filename":"src/checkable.cr","line_number":374,"url":null},"def":{"name":"map_json_keys","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Hash(String, String)","visibility":"Public","body":"map = {} of String => String\n{% if true %}\n {% for ivar in @type.instance_vars %}\n {% ann = ivar.annotation(::JSON::Field) %}\n {% if ann && ann[:ignore] %}{% else %}\n map[{{ ((ann && ann[:key]) || ivar).id.stringify }}] = {{ ivar.id.stringify }}\n {% end %}\n {% end %}\n {% end %}\nmap\n"}},{"id":"to_crystal_h(h:Hash):Hash-instance-method","html_id":"to_crystal_h(h:Hash):Hash-instance-method","name":"to_crystal_h","doc":"Returns a new `Hash` with all JSON keys converted to Crystal keys.","summary":"Returns a new Hash
with all JSON keys converted to Crystal keys.
Returns a new Hash
with all Crystal keys converted to JSON keys.
Declare a method as a checker.
","class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[]},{"html_id":"validator/Check/Errors","path":"Check/Errors.html","kind":"alias","full_name":"Check::Errors","name":"Errors","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/check.cr","line_number":20,"url":null}],"repository_name":"validator","program":false,"enum":false,"alias":true,"aliased":"Hash(String | Symbol, Array(String))","aliased_html":"Hash(String | Symbol, Array(String))","const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"validator/Check","kind":"module","full_name":"Check","name":"Check"},"doc":"Validation errors.\nIt's a `Hash` used as a container of errors, in order to handle them easily.\n\n```\nv = Check.new_validation\npp v.errors\n```","summary":"Validation errors.
","class_methods":[],"constructors":[],"instance_methods":[],"macros":[],"types":[]},{"html_id":"validator/Check/Prop","path":"Check/Prop.html","kind":"module","full_name":"Check::Prop","name":"Prop","abstract":false,"superclass":null,"ancestors":[],"locations":[{"filename":"src/checkable.cr","line_number":77,"url":null}],"repository_name":"validator","program":false,"enum":false,"alias":false,"aliased":null,"aliased_html":null,"const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[],"including_types":[],"namespace":{"html_id":"validator/Check","kind":"module","full_name":"Check","name":"Check"},"doc":"A mixin to make the `getter` macro of the Crystal std's,\nable to support the rules definition and factory block.","summary":"A mixin to make the getter
macro of the Crystal std's, able to support the rules definition and factory block.
Combines a series of checks into one validation instance, with a customized error message for each case.
","class_methods":[],"constructors":[{"id":"new(errors:Errors)-class-method","html_id":"new(errors:Errors)-class-method","name":"new","doc":"Initializes a validation using an existing *errors* `Hash` (`Check::Errors`).\n\n```\nv = Check::Validation.new\n```\n\nSame as:\n\n```\nv = Check.new_validation\n```","summary":"Initializes a validation using an existing errors Hash
(Check::Errors
).
Initializes a validation.
","abstract":false,"args":[],"args_string":"","args_html":"","location":{"filename":"src/check.cr","line_number":167,"url":null},"def":{"name":"new","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"add_error(key:Symbol|String,message:String):Validation-instance-method","html_id":"add_error(key:Symbol|String,message:String):Validation-instance-method","name":"add_error","doc":"Add a validation error.\n\n```\nv = Check.new_validation\nv.add_error(:foo, \"Foo error!\")\npp v.errors # => {:foo => [\"Foo error!\"]}\n```\n\nSee also: `Errors`","summary":"Add a validation error.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"args_string":"(key : Symbol | String, message : String) : Validation","args_html":"(key : Symbol | String, message : String) : Validation","location":{"filename":"src/check.cr","line_number":205,"url":null},"def":{"name":"add_error","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if message.blank?\n message = \"\\\"#{key}\\\" is not valid.\"\nend\nif @errors.has_key?(key)\nelse\n @errors[key] = Array(String).new\nend\n@errors[key] << message\nself\n"}},{"id":"add_error(key:Symbol|String):Validation-instance-method","html_id":"add_error(key:Symbol|String):Validation-instance-method","name":"add_error","doc":"Add a validation error.\n\n> By default a standard message is used.\n\n```\nv = Check.new_validation\nv.add_error(:foo)\npp v.errors # => {:foo => [\"\\\"foo\\\" is not valid.\"]}\n```\n\nSee also: `Errors`","summary":"Add a validation error.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"}],"args_string":"(key : Symbol | String) : Validation","args_html":"(key : Symbol | String) : Validation","location":{"filename":"src/check.cr","line_number":225,"url":null},"def":{"name":"add_error","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"add_error(key, \"\")\nself\n"}},{"id":"check(key:Symbol|String,message:String,valid:Bool):Validation-instance-method","html_id":"check(key:Symbol|String,message:String,valid:Bool):Validation-instance-method","name":"check","doc":"Checks a validation, often used in sequence.\n\nIf *valid* is `false`, the error *message* is added in the `errors`.\nNothing if *valid* is `true`.\n\n```\nv = Check.new_validation\n\n# -- email\n\nv.check :email, \"The email is required.\", is :presence?, :email, user\nv.check :email, \"#{user[:email]} is an invalid email.\", is :email?, user[:email]?\n\n# -- username\n\nv.check :username, \"The username is required.\", is :presence?, :username, user\n\nv.check(\n :username,\n \"The username must contain at least 2 characters.\",\n is :min?, user[:username]?, 2\n)\n\nv.check(\n :username,\n \"The username must contain a maximum of 20 characters.\",\n is :max?, user[:username]?, 20\n)\n\n# Print all errors\npp v.errors\n```","summary":"Checks a validation, often used in sequence.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"args_string":"(key : Symbol | String, message : String, valid : Bool) : Validation","args_html":"(key : Symbol | String, message : String, valid : Bool) : Validation","location":{"filename":"src/check.cr","line_number":273,"url":null},"def":{"name":"check","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if valid\nelse\n add_error(key, message)\nend\nself\n"}},{"id":"check(key:Symbol|String,valid:Bool,message:String):Validation-instance-method","html_id":"check(key:Symbol|String,valid:Bool,message:String):Validation-instance-method","name":"check","doc":"Checks a validation, often used in sequence.\n\nIf *valid* is `false`, the error *message* is added in the `errors`.\nNothing if *valid* is `true`.\n\n```\nv = Check.new_validation\n\n# -- email\n\nv.check(:email, is(:presence?, :email, user), \"The email is required.\")\nv.check(:email, is(:email?, user[:email]?), \"#{user[:email]} is an invalid email.\")\n\n# -- username\n\nv.check(:username, is(:presence?, :username, user), \"The username is required.\")\n\nv.check(\n :username,\n is :min?, user[:username]?, 2,\n \"The username must contain at least 2 characters.\"\n)\n\nv.check(\n :username,\n is :max?, user[:username]?, 20,\n \"The username must contain a maximum of 20 characters.\"\n)\n\n# Print all errors\npp v.errors\n```","summary":"Checks a validation, often used in sequence.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"args_string":"(key : Symbol | String, valid : Bool, message : String) : Validation","args_html":"(key : Symbol | String, valid : Bool, message : String) : Validation","location":{"filename":"src/check.cr","line_number":310,"url":null},"def":{"name":"check","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"},{"name":"message","doc":null,"default_value":"","external_name":"message","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if valid\nelse\n add_error(key, message)\nend\nself\n"}},{"id":"check(key:Symbol|String,valid:Bool):Validation-instance-method","html_id":"check(key:Symbol|String,valid:Bool):Validation-instance-method","name":"check","doc":"Checks a validation, often used in sequence.\n\nIf *valid* is `false`, an error message is added in the `errors`.\nNothing if *valid* is `true`.\n\n> Unlike other `check` methods, with this one a default standard message is used.\n\n```\nv = Check.new_validation\n\nv.check(\"email\", Valid.presence?(\"email\", user))\nv.check(\"email\", Valid.email?(user[\"email\"]?))\n\n# Print all errors\npp v.errors\n```","summary":"Checks a validation, often used in sequence.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"args_string":"(key : Symbol | String, valid : Bool) : Validation","args_html":"(key : Symbol | String, valid : Bool) : Validation","location":{"filename":"src/check.cr","line_number":331,"url":null},"def":{"name":"check","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"valid","doc":null,"default_value":"","external_name":"valid","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Validation","visibility":"Public","body":"if valid\nelse\n add_error(key, \"\")\nend\nself\n"}},{"id":"errors:Errors-instance-method","html_id":"errors:Errors-instance-method","name":"errors","doc":"Errors container.\n\n```\nv = Check.new_validation\npp v.errors\n```","summary":"Errors container.
","abstract":false,"args":[],"args_string":" : Errors","args_html":" : Errors","location":{"filename":"src/check.cr","line_number":192,"url":null},"def":{"name":"errors","args":[],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Errors","visibility":"Public","body":"@errors"}},{"id":"to_exception-instance-method","html_id":"to_exception-instance-method","name":"to_exception","doc":"Creates a new instance of `ValidationError` (`Exception`).","summary":"Creates a new instance of ValidationError
(Exception
).
Returns true
if there is no error, false
if there is one or more errors.
Validation error.
","class_methods":[],"constructors":[{"id":"new(errors:Errors,message="Validationerror")-class-method","html_id":"new(errors:Errors,message="Validationerror")-class-method","name":"new","doc":null,"summary":null,"abstract":false,"args":[{"name":"errors","doc":null,"default_value":"","external_name":"errors","restriction":"Errors"},{"name":"message","doc":null,"default_value":"\"Validation error\"","external_name":"message","restriction":""}],"args_string":"(errors : Errors, message = "Validation error")","args_html":"(errors : Errors, message = "Validation error")","location":{"filename":"src/check.cr","line_number":25,"url":null},"def":{"name":"new","args":[{"name":"errors","doc":null,"default_value":"","external_name":"errors","restriction":"Errors"},{"name":"message","doc":null,"default_value":"\"Validation error\"","external_name":"message","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"_ = allocate\n_.initialize(errors, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"id":"errors:Errors-instance-method","html_id":"errors:Errors-instance-method","name":"errors","doc":"Returns `Errors` container (`Hash`).","summary":"Returns Errors
container (Hash
).
Alias of Validator
∠(・.-)―〉 →◎ validator
is a Crystal data validation module.
Validates the absence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : String | Symbol, list : NamedTuple) : Bool","args_html":"(key : String | Symbol, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":47,"url":null},"def":{"name":"absence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.empty?(list[key]?)"}},{"id":"absence?(key:String|Symbol|Number,list:Hash):Bool-class-method","html_id":"absence?(key:String|Symbol|Number,list:Hash):Bool-class-method","name":"absence?","doc":"Validates the absence of the value.\n- See also `#not_in?`.\n- See also `#empty?`.","summary":"Validates the absence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : String | Symbol | Number, list : Hash) : Bool","args_html":"(key : String | Symbol | Number, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":42,"url":null},"def":{"name":"absence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.empty?(list[key]?)"}},{"id":"accepted?(value:String):Bool-class-method","html_id":"accepted?(value:String):Bool-class-method","name":"accepted?","doc":"Validates that the *value* `String` is the representation of an acceptance.\n> One of: \"yes\", \"y\", \"on\", \"o\", \"ok\", \"1\", \"true\"\n- See also `#refused?`.","summary":"Validates that the value String
is the representation of an acceptance.
Validates that the value is the representation of an acceptance.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"args_string":"(value) : Bool","args_html":"(value) : Bool","location":{"filename":"src/validators/presence.cr","line_number":189,"url":null},"def":{"name":"accepted?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.accepted?(value.to_s)"}},{"id":"ascii_only?(value:String):Bool-class-method","html_id":"ascii_only?(value:String):Bool-class-method","name":"ascii_only?","doc":"Validates that the *value* `String`\nis comprised in its entirety by ASCII characters.","summary":"Validates that the value String
is comprised in its entirety by ASCII characters.
Validates that all the String
in the values Array
are comprised in their entirety by ASCII characters.
Validates that the value has the format base64.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/format.cr","line_number":87,"url":null},"def":{"name":"base64?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if (value.match(@@rx_base64)) && ((value.size % 4) === 0)\n return true\nend\nfalse\n"}},{"id":"between?(value,min,max):Bool-class-method","html_id":"between?(value,min,max):Bool-class-method","name":"between?","doc":"Validates that the *value* is between (inclusive) *min* and *max*.","summary":"Validates that the value is between (inclusive) min and max.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"args_string":"(value, min, max) : Bool","args_html":"(value, min, max) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":87,"url":null},"def":{"name":"between?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value >= min && value <= max"}},{"id":"between?(value:String|Array,min:Int,max:Int):Bool-class-method","html_id":"between?(value:String|Array,min:Int,max:Int):Bool-class-method","name":"between?","doc":"Validates that the size of the *value* (`String` or `Array`) is between\n(inclusive) *min* and *max*.\n- See also `#size?`.","summary":"Validates that the size of the value (String
or Array
) is between (inclusive) min and max.
Validates that the value is an email.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":161,"url":null},"def":{"name":"email?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"size = value.size\nif size > 60 || size < 7\n return false\nend\nif value.includes?(\"..\")\n return false\nend\nif value.includes?(\"--\")\n return false\nend\nif value.includes?(\"___\")\n return false\nend\nif m = value.match(@@rx_email)\nelse\n return false\nend\nself.domain?(\"#{m[\"name\"]}.#{m[\"ext\"]}\")\n"}},{"id":"empty?(value):Bool-class-method","html_id":"empty?(value):Bool-class-method","name":"empty?","doc":"Validates that the *value* is empty.\n- See also `#absence?`.\n- See also `#not_in?`.","summary":"Validates that the value is empty.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"args_string":"(value) : Bool","args_html":"(value) : Bool","location":{"filename":"src/validators/presence.cr","line_number":58,"url":null},"def":{"name":"empty?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"case value\nwhen .nil?\n true\nwhen .is_a?(String)\n value.presence.nil?\nwhen .is_a?(Number)\n value == 0\nwhen .responds_to?(:size)\n value.size == 0\nelse\n false\nend"}},{"id":"ends?(value:String,search:String):Bool-class-method","html_id":"ends?(value:String,search:String):Bool-class-method","name":"ends?","doc":"Validates that the `String` *value* ends with *search*.\n- See also `#starts?`.\n- See also `#match?`.\n- See also `#in?`.","summary":"Validates that the String
value ends with search.
Validates that the String
value ends with search.
Validates that the String
value ends with search.
Validates that the value is equal to another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":10,"url":null},"def":{"name":"eq?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value == another_value"}},{"id":"gt?(value,another_value):Bool-class-method","html_id":"gt?(value,another_value):Bool-class-method","name":"gt?","doc":"Validates that the *value* is greater than *another_value*.","summary":"Validates that the value is greater than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":15,"url":null},"def":{"name":"gt?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value > another_value"}},{"id":"gt?(value:String|Array,limit:Int):Bool-class-method","html_id":"gt?(value:String|Array,limit:Int):Bool-class-method","name":"gt?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis greater than *limit* number.","summary":"Validates that the size of the value (String
or Array
) is greater than limit number.
Validates that the value is equal to or greater than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":27,"url":null},"def":{"name":"gte?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value >= another_value"}},{"id":"gte?(value:String|Array,min:Int):Bool-class-method","html_id":"gte?(value:String|Array,min:Int):Bool-class-method","name":"gte?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis greater than *min* number.\n> Similar to `#min`.","summary":"Validates that the size of the value (String
or Array
) is greater than min number.
Validates that the String
value does denote a representation of a hexadecimal string.
Validates that the Bytes
value does denote a representation of a hexadecimal slice of Bytes.
Validates that the String
value does denote a representation of a hexadecimal color.
Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"args_string":"(value, list : Array) : Bool","args_html":"(value, list : Array) : Bool","location":{"filename":"src/validators/presence.cr","line_number":109,"url":null},"def":{"name":"in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.includes?(value)"}},{"id":"in?(value:String,str:String):Bool-class-method","html_id":"in?(value:String,str:String):Bool-class-method","name":"in?","doc":"Validates that the (*str*) `String` contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (str) String
contains the value.
Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : Symbol | String, list : Hash) : Bool","args_html":"(key : Symbol | String, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":129,"url":null},"def":{"name":"in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.has_key?(key)"}},{"id":"in?(key:Symbol|String,list:NamedTuple):Bool-class-method","html_id":"in?(key:Symbol|String,list:NamedTuple):Bool-class-method","name":"in?","doc":"Validates that the (*list*) contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : Symbol | String, list : NamedTuple) : Bool","args_html":"(key : Symbol | String, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":124,"url":null},"def":{"name":"in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.has_key?(key)"}},{"id":"in?(value,list:Range):Bool-class-method","html_id":"in?(value,list:Range):Bool-class-method","name":"in?","doc":"Validates that the (*list*) contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"args_string":"(value, list : Range) : Bool","args_html":"(value, list : Range) : Bool","location":{"filename":"src/validators/presence.cr","line_number":119,"url":null},"def":{"name":"in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.includes?(value)"}},{"id":"in?(value,list:Tuple):Bool-class-method","html_id":"in?(value,list:Tuple):Bool-class-method","name":"in?","doc":"Validates that the (*list*) contains the *value*.\n- See also `#presence?`.\n- See also `#not_in?`.\n- See also `#not_empty?`.","summary":"Validates that the (list) contains the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"args_string":"(value, list : Tuple) : Bool","args_html":"(value, list : Tuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":114,"url":null},"def":{"name":"in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"list.includes?(value)"}},{"id":"ip?(value:String):Bool-class-method","html_id":"ip?(value:String):Bool-class-method","name":"ip?","doc":"Validates that the *value* is an IP (IPv4 or IPv6).","summary":"Validates that the value is an IP (IPv4 or IPv6).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":80,"url":null},"def":{"name":"ip?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(self.ipv4?(value)) || (self.ipv6?(value))"}},{"id":"ipv4?(value:String):Bool-class-method","html_id":"ipv4?(value:String):Bool-class-method","name":"ipv4?","doc":"Validates that the *value* is an IPv4.","summary":"Validates that the value is an IPv4.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":85,"url":null},"def":{"name":"ipv4?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_ipv4).nil?"}},{"id":"ipv6?(value:String):Bool-class-method","html_id":"ipv6?(value:String):Bool-class-method","name":"ipv6?","doc":"Validates that the *value* is an IPv6.","summary":"Validates that the value is an IPv6.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":90,"url":null},"def":{"name":"ipv6?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"addr_and_zone = [value]\nif value.includes?('%')\n addr_and_zone = value.split('%')\n if addr_and_zone.size == 2\n else\n return false\n end\n if addr_and_zone[0].includes?(':')\n else\n return false\n end\n if addr_and_zone[1] == \"\"\n return false\n end\nend\nblocks = addr_and_zone[0].split(':')\nfound_omission_block = false\nfound_ipv4_transition_block = self.ipv4?(blocks[blocks.size - 1])\nexpected_number_of_blocks = found_ipv4_transition_block ? 7 : 8\nif blocks.size > expected_number_of_blocks\n return false\nend\nif value == \"::\"\n return true\nend\nif value[0...2] == \"::\"\n blocks.shift(2)\n found_omission_block = true\nelse\n if value[(value.size - 2)..] == \"::\"\n blocks.pop(2)\n found_omission_block = true\n end\nend\ni = 0\nwhile i < blocks.size\n if ((blocks[i] === \"\") && i > 0) && i < (blocks.size - 1)\n if found_omission_block\n return false\n end\n found_omission_block = true\n else\n if (!(found_ipv4_transition_block && (i == (blocks.size - 1)))) && blocks[i].match(@@rx_ipv6_block).nil?\n return false\n end\n end\n i = i + 1\nend\nif found_omission_block\n return blocks.size >= 1\nend\nblocks.size == expected_number_of_blocks\n"}},{"id":"json?(value:String,strict:Bool=true):Bool-class-method","html_id":"json?(value:String,strict:Bool=true):Bool-class-method","name":"json?","doc":"Validates that the *value* represents a JSON string.\n*strict* to `true` (default) to try to parse the JSON,\nreturns `false` if the parsing fails.\nIf *strict* is `false`, only the first char and the last char are checked.","summary":"Validates that the value represents a JSON string.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"strict","doc":null,"default_value":"true","external_name":"strict","restriction":"Bool"}],"args_string":"(value : String, strict : Bool = true) : Bool","args_html":"(value : String, strict : Bool = true) : Bool","location":{"filename":"src/validators/format.cr","line_number":64,"url":null},"def":{"name":"json?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"strict","doc":null,"default_value":"true","external_name":"strict","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if strict\n begin\n JSON.parse(value)\n rescue err\n return false\n else\n return true\n end\nend\n((self.starts?(value, \"{\")) && (self.ends?(value, \"}\"))) || ((self.starts?(value, \"[\")) && (self.ends?(value, \"]\")))\n"}},{"id":"jwt?(value:String):Bool-class-method","html_id":"jwt?(value:String):Bool-class-method","name":"jwt?","doc":"Validates that the *value* is a *JSON Web Token*.","summary":"Validates that the value is a JSON Web Token.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/format.cr","line_number":95,"url":null},"def":{"name":"jwt?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_jwt).nil?"}},{"id":"lat?(value:String|Float):Bool-class-method","html_id":"lat?(value:String|Float):Bool-class-method","name":"lat?","doc":"Validates that the *value* is a valid format representation of a geographical latitude.\n- See also `#lng?`.\n- See also `#lat_lng?`.","summary":"Validates that the value is a valid format representation of a geographical latitude.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"args_string":"(value : String | Float) : Bool","args_html":"(value : String | Float) : Bool","location":{"filename":"src/validators/geo.cr","line_number":31,"url":null},"def":{"name":"lat?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.to_s.match(@@rx_geo_lat).nil?"}},{"id":"lat_lng?(value:String):Bool-class-method","html_id":"lat_lng?(value:String):Bool-class-method","name":"lat_lng?","doc":"Validates that the *value* is a valid format representation of\na geographical position (given in latitude and longitude).\n- See also `#lat?`.\n- See also `#lng?`.","summary":"Validates that the value is a valid format representation of a geographical position (given in latitude and longitude).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/geo.cr","line_number":16,"url":null},"def":{"name":"lat_lng?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if !(value.includes?(\",\"))\n return false\nend\nlat, lng = value.split(\",\")\nif lat && lng\nelse\n return false\nend\nif ((lat.starts_with?('(')) && (!(lng.ends_with?(')'))))\n return false\nend\nif ((lng.ends_with?(')')) && (!(lat.starts_with?('('))))\n return false\nend\nif (lat.match(@@rx_geo_lat)) && (lng.match(@@rx_geo_lng))\n return true\nend\nfalse\n"}},{"id":"lng?(value:String|Float):Bool-class-method","html_id":"lng?(value:String|Float):Bool-class-method","name":"lng?","doc":"Validates that the *value* is a valid format representation of a geographical longitude.\n- See also `#lat?`.\n- See also `#lat_lng?`.","summary":"Validates that the value is a valid format representation of a geographical longitude.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"args_string":"(value : String | Float) : Bool","args_html":"(value : String | Float) : Bool","location":{"filename":"src/validators/geo.cr","line_number":38,"url":null},"def":{"name":"lng?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String | Float"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.to_s.match(@@rx_geo_lng).nil?"}},{"id":"lower?(value:String):Bool-class-method","html_id":"lower?(value:String):Bool-class-method","name":"lower?","doc":"Validates that the *value* is in lower case.","summary":"Validates that the value is in lower case.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/case_sensitive.cr","line_number":10,"url":null},"def":{"name":"lower?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(!value.blank?) && (value.downcase === value)"}},{"id":"lt?(value:String|Array,limit:Int):Bool-class-method","html_id":"lt?(value:String|Array,limit:Int):Bool-class-method","name":"lt?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis lesser than *limit* number.","summary":"Validates that the size of the value (String
or Array
) is lesser than limit number.
Validates that the value is lesser than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":39,"url":null},"def":{"name":"lt?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value < another_value"}},{"id":"lte?(value:String|Array,max:Int):Bool-class-method","html_id":"lte?(value:String|Array,max:Int):Bool-class-method","name":"lte?","doc":"Validates that the size of the *value* (`String` or `Array`)\nis equal or lesser than *max* number.\n> Similar to `#max`.","summary":"Validates that the size of the value (String
or Array
) is equal or lesser than max number.
Validates that the value is equal to or lesser than another_value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"args_string":"(value, another_value) : Bool","args_html":"(value, another_value) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":51,"url":null},"def":{"name":"lte?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"another_value","doc":null,"default_value":"","external_name":"another_value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value <= another_value"}},{"id":"mac_addr?(value:String,no_colons:Bool=false):Bool-class-method","html_id":"mac_addr?(value:String,no_colons:Bool=false):Bool-class-method","name":"mac_addr?","doc":"Validates that the *value* is a MAC address.","summary":"Validates that the value is a MAC address.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"no_colons","doc":null,"default_value":"false","external_name":"no_colons","restriction":"Bool"}],"args_string":"(value : String, no_colons : Bool = false) : Bool","args_html":"(value : String, no_colons : Bool = false) : Bool","location":{"filename":"src/validators/uri.cr","line_number":179,"url":null},"def":{"name":"mac_addr?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"no_colons","doc":null,"default_value":"false","external_name":"no_colons","restriction":"Bool"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if no_colons\n return !value.match(@@rx_mac_addr_no_colons).nil?\nend\n(((!value.match(@@rx_mac_addr).nil?) || (!value.match(@@rx_mac_addr_with_hyphen).nil?)) || (!value.match(@@rx_mac_addr_with_spaces).nil?)) || (!value.match(@@rx_mac_addr_with_dots).nil?)\n"}},{"id":"magnet_uri?(value:String):Bool-class-method","html_id":"magnet_uri?(value:String):Bool-class-method","name":"magnet_uri?","doc":"Validates that the *value* is a Magnet URI.","summary":"Validates that the value is a Magnet URI.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":189,"url":null},"def":{"name":"magnet_uri?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_magnet_uri).nil?"}},{"id":"match?(value:Number,pattern:Regex):Bool-class-method","html_id":"match?(value:Number,pattern:Regex):Bool-class-method","name":"match?","doc":"Validates that the *value* matches the *pattern*.","summary":"Validates that the value matches the pattern.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"Number"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"args_string":"(value : Number, pattern : Regex) : Bool","args_html":"(value : Number, pattern : Regex) : Bool","location":{"filename":"src/validators/presence.cr","line_number":15,"url":null},"def":{"name":"match?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"Number"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.to_s.match(pattern).nil?"}},{"id":"match?(value:String,pattern:Regex):Bool-class-method","html_id":"match?(value:String,pattern:Regex):Bool-class-method","name":"match?","doc":"Validates that the *value* matches the *pattern*.","summary":"Validates that the value matches the pattern.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"args_string":"(value : String, pattern : Regex) : Bool","args_html":"(value : String, pattern : Regex) : Bool","location":{"filename":"src/validators/presence.cr","line_number":10,"url":null},"def":{"name":"match?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"pattern","doc":null,"default_value":"","external_name":"pattern","restriction":"Regex"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(pattern).nil?"}},{"id":"max?(value,max):Bool-class-method","html_id":"max?(value,max):Bool-class-method","name":"max?","doc":"Validates that the *value* is equal to or lesser than *max* (inclusive).\n> Similar to `#lte`.","summary":"Validates that the value is equal to or lesser than max (inclusive).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"args_string":"(value, max) : Bool","args_html":"(value, max) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":76,"url":null},"def":{"name":"max?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"max","doc":null,"default_value":"","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value <= max"}},{"id":"max?(value:String|Array,max:Int):Bool-class-method","html_id":"max?(value:String|Array,max:Int):Bool-class-method","name":"max?","doc":":ditto:\n> Based on the size of the `String`.","summary":":ditto: > Based on the size of the String
.
Validates that the value has the format md5.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/format.cr","line_number":82,"url":null},"def":{"name":"md5?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(@@rx_md5).nil?"}},{"id":"min?(value,min):Bool-class-method","html_id":"min?(value,min):Bool-class-method","name":"min?","doc":"Validates that the *value* is equal to or greater than *min* (inclusive).\n> Similar to `#gte`.","summary":"Validates that the value is equal to or greater than min (inclusive).
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""}],"args_string":"(value, min) : Bool","args_html":"(value, min) : Bool","location":{"filename":"src/validators/comparisons.cr","line_number":64,"url":null},"def":{"name":"min?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"","external_name":"min","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"value >= min"}},{"id":"min?(value:String|Array,min:Int):Bool-class-method","html_id":"min?(value:String|Array,min:Int):Bool-class-method","name":"min?","doc":":ditto:\n> Based on the size of the `String`.","summary":":ditto: > Based on the size of the String
.
Validates that the Bytes
value does denote a representation of a MongoID slice of Bytes.
Validates that the String
value does denote a representation of a MongoID string.
Validates that the value is not empty.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"args_string":"(value) : Bool","args_html":"(value) : Bool","location":{"filename":"src/validators/presence.cr","line_number":71,"url":null},"def":{"name":"not_empty?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(self.empty?(value)) == false"}},{"id":"not_in?(value:String,str:String):Bool-class-method","html_id":"not_in?(value:String,str:String):Bool-class-method","name":"not_in?","doc":"Validates that the (*str*) `String` does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (str) String
does not contain the value.
Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"args_string":"(value, list : Array) : Bool","args_html":"(value, list : Array) : Bool","location":{"filename":"src/validators/presence.cr","line_number":149,"url":null},"def":{"name":"not_in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Array"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.includes?(value))"}},{"id":"not_in?(value,list:Tuple):Bool-class-method","html_id":"not_in?(value,list:Tuple):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"args_string":"(value, list : Tuple) : Bool","args_html":"(value, list : Tuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":154,"url":null},"def":{"name":"not_in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Tuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.includes?(value))"}},{"id":"not_in?(value,list:Range):Bool-class-method","html_id":"not_in?(value,list:Range):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"args_string":"(value, list : Range) : Bool","args_html":"(value, list : Range) : Bool","location":{"filename":"src/validators/presence.cr","line_number":159,"url":null},"def":{"name":"not_in?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Range"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.includes?(value))"}},{"id":"not_in?(key:Symbol|String,list:NamedTuple):Bool-class-method","html_id":"not_in?(key:Symbol|String,list:NamedTuple):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : Symbol | String, list : NamedTuple) : Bool","args_html":"(key : Symbol | String, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":164,"url":null},"def":{"name":"not_in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.has_key?(key))"}},{"id":"not_in?(key:Symbol|String,list:Hash):Bool-class-method","html_id":"not_in?(key:Symbol|String,list:Hash):Bool-class-method","name":"not_in?","doc":"Validates that the (*list*) does not contain the *value*.\n- See also `#absence?`.\n- See also `#in?`.\n- See also `#empty?`.","summary":"Validates that the (list) does not contain the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : Symbol | String, list : Hash) : Bool","args_html":"(key : Symbol | String, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":169,"url":null},"def":{"name":"not_in?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"Symbol | String"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!(list.has_key?(key))"}},{"id":"not_null?(value):Bool-class-method","html_id":"not_null?(value):Bool-class-method","name":"not_null?","doc":"Validates that the *value* is not null (`nil`).\n- See also `#null?`.\n- See also `#not_empty?`.","summary":"Validates that the value is not null (nil
).
Validates that the value is null (nil
).
Validates that the value is a numeric String
representation.
Validates that the value is in a valid port range, between (inclusive) 1 / min and 65535 / max.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"\"0\"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"\"1\"","external_name":"min","restriction":"String"},{"name":"max","doc":null,"default_value":"\"65535\"","external_name":"max","restriction":"String"}],"args_string":"(value : String = "0", min : String = "1", max : String = "65535") : Bool","args_html":"(value : String = "0", min : String = "1", max : String = "65535") : Bool","location":{"filename":"src/validators/uri.cr","line_number":47,"url":null},"def":{"name":"port?","args":[{"name":"value","doc":null,"default_value":"\"0\"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"\"1\"","external_name":"min","restriction":"String"},{"name":"max","doc":null,"default_value":"\"65535\"","external_name":"max","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if (self.number?(min)) && (self.number?(max))\nelse\n return false\nend\nself.port?(value.to_i, min.to_i, max.to_i)\n"}},{"id":"port?(value=0,min=1,max=65535):Bool-class-method","html_id":"port?(value=0,min=1,max=65535):Bool-class-method","name":"port?","doc":"Validates that the *value* is in a valid port range,\nbetween (inclusive) 1 / *min* and 65535 / *max*.","summary":"Validates that the value is in a valid port range, between (inclusive) 1 / min and 65535 / max.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"0","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"65535","external_name":"max","restriction":""}],"args_string":"(value = 0, min = 1, max = 65535) : Bool","args_html":"(value = 0, min = 1, max = 65535) : Bool","location":{"filename":"src/validators/uri.cr","line_number":41,"url":null},"def":{"name":"port?","args":[{"name":"value","doc":null,"default_value":"0","external_name":"value","restriction":""},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"65535","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if self.between?(value, 1, 65535)\nelse\n return false\nend\nself.between?(value, min, max)\n"}},{"id":"presence?(key:String|Symbol,list:NamedTuple):Bool-class-method","html_id":"presence?(key:String|Symbol,list:NamedTuple):Bool-class-method","name":"presence?","doc":"Validates the presence of the value.\n- See also `#in?`.\n- See also `#not_empty?`.","summary":"Validates the presence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"args_string":"(key : String | Symbol, list : NamedTuple) : Bool","args_html":"(key : String | Symbol, list : NamedTuple) : Bool","location":{"filename":"src/validators/presence.cr","line_number":31,"url":null},"def":{"name":"presence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"NamedTuple"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.not_empty?(list[key]?)"}},{"id":"presence?(key:String|Symbol|Number,list:Hash):Bool-class-method","html_id":"presence?(key:String|Symbol|Number,list:Hash):Bool-class-method","name":"presence?","doc":"Validates the presence of the value.\n- See also `#in?`.\n- See also `#not_empty?`.","summary":"Validates the presence of the value.
","abstract":false,"args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"args_string":"(key : String | Symbol | Number, list : Hash) : Bool","args_html":"(key : String | Symbol | Number, list : Hash) : Bool","location":{"filename":"src/validators/presence.cr","line_number":26,"url":null},"def":{"name":"presence?","args":[{"name":"key","doc":null,"default_value":"","external_name":"key","restriction":"String | Symbol | Number"},{"name":"list","doc":null,"default_value":"","external_name":"list","restriction":"Hash"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"self.not_empty?(list[key]?)"}},{"id":"refused?(value):Bool-class-method","html_id":"refused?(value):Bool-class-method","name":"refused?","doc":"Returns `true` if the *value* is the representation of a refusal.\n> One of: \"no\", \"n\", \"off\", \"0\", \"false\"\n\n*value* must implements *#to_s* method.\n- See also `#accepted?`.","summary":"Returns true
if the value is the representation of a refusal.
Validates that the value String
is the representation of a refusal.
Validates that the value is in the size array.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(String)"}],"args_string":"(value, size : Array(String))","args_html":"(value, size : Array(String))","location":{"filename":"src/validators/comparisons.cr","line_number":122,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(String)"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"size.includes?(value.size.to_s)"}},{"id":"size?(value,size:Array(Int))-class-method","html_id":"size?(value,size:Array(Int))-class-method","name":"size?","doc":"Validates that the *value* is in the *size* array.\n- See also `#between?`.","summary":"Validates that the value is in the size array.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(Int)"}],"args_string":"(value, size : Array(Int))","args_html":"(value, size : Array(Int))","location":{"filename":"src/validators/comparisons.cr","line_number":117,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Array(Int)"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"size.includes?(value.size)"}},{"id":"size?(value,size:Range)-class-method","html_id":"size?(value,size:Range)-class-method","name":"size?","doc":"Validates that the *value* is in the *size* range.\n- See also `#between?`.","summary":"Validates that the value is in the size range.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Range"}],"args_string":"(value, size : Range)","args_html":"(value, size : Range)","location":{"filename":"src/validators/comparisons.cr","line_number":111,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Range"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"size.includes?(value.size)"}},{"id":"size?(value,size:String)-class-method","html_id":"size?(value,size:String)-class-method","name":"size?","doc":"Validates that the *value* is equal to the *size*.","summary":"Validates that the value is equal to the size.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"String"}],"args_string":"(value, size : String)","args_html":"(value, size : String)","location":{"filename":"src/validators/comparisons.cr","line_number":105,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"value.size.to_s == size"}},{"id":"size?(value,size:Int)-class-method","html_id":"size?(value,size:Int)-class-method","name":"size?","doc":"Validates that the *value* is equal to the *size*.","summary":"Validates that the value is equal to the size.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Int"}],"args_string":"(value, size : Int)","args_html":"(value, size : Int)","location":{"filename":"src/validators/comparisons.cr","line_number":100,"url":null},"def":{"name":"size?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":""},{"name":"size","doc":null,"default_value":"","external_name":"size","restriction":"Int"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"","visibility":"Public","body":"value.size == size"}},{"id":"slug?(value:String,min=1,max=100):Bool-class-method","html_id":"slug?(value:String,min=1,max=100):Bool-class-method","name":"slug?","doc":"Validates that the *value* is a slug.","summary":"Validates that the value is a slug.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"100","external_name":"max","restriction":""}],"args_string":"(value : String, min = 1, max = 100) : Bool","args_html":"(value : String, min = 1, max = 100) : Bool","location":{"filename":"src/validators/uri.cr","line_number":174,"url":null},"def":{"name":"slug?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"min","doc":null,"default_value":"1","external_name":"min","restriction":""},{"name":"max","doc":null,"default_value":"100","external_name":"max","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"!value.match(/^([a-zA-Z0-9_-]{#{min},#{max}})$/).nil?"}},{"id":"starts?(value:String,search:Char):Bool-class-method","html_id":"starts?(value:String,search:Char):Bool-class-method","name":"starts?","doc":"Validates that the `String` *value* starts with *search*.\n- See also `#ends?`.\n- See also `#match?`.\n- See also `#in?`.","summary":"Validates that the String
value starts with search.
Validates that the String
value starts with search.
Validates that the String
value starts with search.
Validates that the value is a time String
representation.
Validates that the value is in upper case.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/case_sensitive.cr","line_number":15,"url":null},"def":{"name":"upper?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"(!value.blank?) && (value.upcase === value)"}},{"id":"url?(value:String):Bool-class-method","html_id":"url?(value:String):Bool-class-method","name":"url?","doc":"Validates that the *value* is a URL.","summary":"Validates that the value is a URL.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"args_string":"(value : String) : Bool","args_html":"(value : String) : Bool","location":{"filename":"src/validators/uri.cr","line_number":55,"url":null},"def":{"name":"url?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"size = value.size\nif ((size >= 2083 || size < 11) || (value.match(/[\\s<>]/))) || (value.starts_with?(\"mailto:\"))\n return false\nend\nif m = value.match(@@rx_url)\nelse\n return false\nend\nif self.domain?(\"#{m[\"name\"]}.#{m[\"ext\"]}\")\nelse\n return false\nend\nsp = (value.gsub(/^http(?:s)?:\\/\\//, \"\")).split(\":\")\nif sp.size > 1\n if m_port = sp[1].match(/^[0-9]+/)\n else\n return true\n end\n return self.port?(m_port[0])\nend\ntrue\n"}},{"id":"uuid?(value:String,version=0):Bool-class-method","html_id":"uuid?(value:String,version=0):Bool-class-method","name":"uuid?","doc":"Validates that the *value* is a *UUID*\nVersions: 0 (all), 3, 4 and 5. *version* by default is 0 (all).","summary":"Validates that the value is a UUID Versions: 0 (all), 3, 4 and 5.
","abstract":false,"args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"version","doc":null,"default_value":"0","external_name":"version","restriction":""}],"args_string":"(value : String, version = 0) : Bool","args_html":"(value : String, version = 0) : Bool","location":{"filename":"src/validators/format.cr","line_number":103,"url":null},"def":{"name":"uuid?","args":[{"name":"value","doc":null,"default_value":"","external_name":"value","restriction":"String"},{"name":"version","doc":null,"default_value":"0","external_name":"version","restriction":""}],"double_splat":null,"splat_index":null,"yields":null,"block_arg":null,"return_type":"Bool","visibility":"Public","body":"if @@rx_uuid.has_key?(version)\nelse\n return false\nend\n!value.match(@@rx_uuid[version]).nil?\n"}}],"constructors":[],"instance_methods":[],"macros":[],"types":[{"html_id":"validator/Validator/Error","path":"Validator/Error.html","kind":"class","full_name":"Validator::Error","name":"Error","abstract":false,"superclass":{"html_id":"validator/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"validator/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"validator/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"validator/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/validator.cr","line_number":120,"url":null}],"repository_name":"validator","program":false,"enum":false,"alias":false,"aliased":null,"aliased_html":null,"const":false,"constants":[],"included_modules":[],"extended_modules":[],"subclasses":[{"html_id":"validator/Check/ValidationError","kind":"class","full_name":"Check::ValidationError","name":"ValidationError"}],"including_types":[],"namespace":{"html_id":"validator/Validator","kind":"module","full_name":"Validator","name":"Validator"},"doc":"Used by `is!` when a validation is not `true`.","summary":"Used by is!
when a validation is not true
.