Examples:
require "aspect/validator"
user = User.new(name: "Foo Bar")
user_validator = Aspect::Validator.new
user_validator.verify(:name, presence: true)
user_validator.verify(:age, presence: true, integer: true, greater_than_or_equal_to: 18)
user.age = nil
user_validator.validate(user)
user.age = 17.98
user_validator.validate(user)
user.name = ""
user.age = 17
user_validator.validate(user)
user.name = "Foo Bar"
user.age = 25
user_validator.validate(user)
Aspect::Validator.new(name: { presence: true }, age: { presence: true, integer: true, greater_than_or_equal_to: 18 })
require "aspect/validator"
require "aspect/message_transform"
user = User.new(name: "Foo Bar")
error_message = Aspect::MessageTransform.new(
presence: "Must be given.",
integer: "Must give a number.",
greater_than_or_equal_to: "Must be %{greater_than_or_equal_to} or greater."
)
user_validator = Aspect::Validator.new
user_validator.verify(:name, presence: true)
user_validator.verify(:age, presence: true, integer: true, greater_than_or_equal_to: 18)
user_errors = user_validator.validate(user)
puts error_message.to_s(user_errors) if user_errors
Displaying validation errors with MessageTransform and Internationalization (I18N).
require "aspect/validator"
require "aspect/message_transform"
user = User.new(name: "Foo Bar")
dictionary_data = {
en: {
attributes: {
age: "age"
},
errors: {
presence: "must not be blank",
greater_than_or_equal_to: "must be greater than or equal to %{value}"
}
},
es: {
attributes: {
age: "edad"
},
errors: {
presence: "no debe estar en blanco",
greater_than_or_equal_to: "debe ser mayor que o igual a %{value}"
}
}
}
language = :en
dictionary = Aspect::MessageTransform.new(dictionary_data)
user_validator = Aspect::Validator.new(name: { presence: true }, age: { presence: true, greater_than_or_equal_to: 18 })
user_errors = user_validator.validate(user)
if user_errors
user_errors.each do |attribute_name, error|
attribute_name = dictionary.to_s("#{language}.attributes.#{attribute_name}")
puts "#{attribute_name}: " + dictionary.to_s("#{language}.errors" => error)
end
end