class Toolchain::Validations::Validators::Length
Validates the lengt of an attribute.
@example
class User::Creator validates :password, length: { between: 5..100, message: "must be between 5 and 100 characters long" } end class User::Creator validates :password, length: { greater_than: 5, less_than 100, message: "must be between 5 and 100 characters long" } end
Public Instance Methods
validate()
click to toggle source
# File lib/toolchain/validations/validators/length.rb, line 23 def validate errors.add(key_path, message || "is invalid") unless valid? end
Private Instance Methods
valid?()
click to toggle source
# File lib/toolchain/validations/validators/length.rb, line 29 def valid? val = if value.kind_of?(String) && value =~ /^\d+$/ value.to_i elsif value.kind_of?(String) && value =~ /^\d+\.\d+$/ value.to_f elsif value.kind_of?(String) value.length else value end if data[:between] return data[:between].include?(val) end if data[:greater_than] && data[:less_than] return val > data[:greater_than] && val < data[:less_than] end if data[:greater_than] return val > data[:greater_than] end if data[:less_than] return val < data[:less_than] end false end