Louche ajoute des validateurs communs pour les classes ActiveModel/ActiveRecord.
Ajoutez cette ligne au Gemfile de votre application :
gem 'louche'
Louche fournit quelques validateurs à utiliser dans vos classes ActiveModel/ActiveRecord. Vous pouvez utiliser tous les validateurs avec une version symbolisée en minuscules de leur préfixe comme clé et true
comme valeur. Par exemple, pour EmailValidator
:
class User < ApplicationRecord
validates :email , email : true
end
Facultativement, si vous souhaitez personnaliser les options par défaut, vous pouvez passer un hachage comme valeur :
class User < ApplicationRecord
validates :email , email : { regex : /^.*@.*$/ , message : :blank }
end
Voici les validateurs fournis par Louche ainsi que leurs options respectives :
EmailValidator
class User < ApplicationRecord
validates :email , email : true
end
User . new ( email : '[email protected]' ) . valid? # => true
User . new ( email : 'foo@example' ) . valid? # => false
Option | Description |
---|---|
:regex | L'expression régulière utilisée pour valider l'e-mail (par défaut : /A([^@s]+)@((?:[-a-z0-9]+.)+[az]{2,})z/i ) |
:message | Le message ActiveRecord ajouté aux erreurs d'enregistrement (par défaut : :invalid_email ) |
URLValidator
class User < ApplicationRecord
validates :website , url : true
end
User . new ( website : 'http://example.com' ) . valid? # => true
User . new ( website : 'example.$$$' ) . valid? # => false
Option | Description |
---|---|
:schemes | Les schémas d'URI à autoriser (par défaut : %w(http https) ) |
:message | Le message ActiveRecord ajouté aux erreurs d'enregistrement (par défaut : :invalid_url ) |
PhoneNumberValidator
class User < ApplicationRecord
validates :phone_number , phone_number : true
end
user = User . new ( phone_number : '514 555-2525' )
user . valid? # => true
user . phone_number # => '5145552525'
user = User . new ( phone_number : '555-2525' )
user . valid? # => false
user . phone_number # '5552525'
Option | Description |
---|---|
:regex | L'expression régulière utilisée pour valider le numéro (par défaut : /Ad{10,}z/ ) |
:cleanup_regex | L'expression régulière utilisée pour valider le nettoyage de l'entrée avant de la valider/l'enregistrer (par défaut : /[^d]/ ) |
:message | Le message ActiveRecord ajouté aux erreurs d'enregistrement (par défaut : :invalid_phone_number ) |
PostalCodeValidator
class User < ApplicationRecord
validates :postal_code , postal_code : true
end
user = User . new ( postal_code : 'G0R 2T0' )
user . valid? # => true
user . postal_code # => 'G0R2T0'
user = User . new ( postal_code : 'L -0- L' )
user . valid? # => false
user . postal_code # => 'L0L'
Option | Description |
---|---|
:regex | L'expression régulière utilisée pour valider le code (par défaut : /A[az]d[az]d[az]dz/i ) |
:cleanup_regex | L'expression régulière utilisée pour valider le nettoyage de l'entrée avant de la valider/l'enregistrer (par défaut : /[^a-z0-9]/i ) |
:message | Le message ActiveRecord ajouté aux erreurs d'enregistrement (par défaut : :invalid_postal_code ) |
ArrayValidator
class Tag < Struct . new ( :name )
def valid?
name . present?
end
end
class User < ApplicationRecord
validates :tags , array : true
def tags = ( tags )
super tags . map { | tag | Tag . new ( tag ) }
end
end
User . new ( tags : [ 'food' , 'beer' , 'code' ] ) . valid? # => true
User . new ( tags : [ 'food' , '' , 'code' ] ) . valid? # => false
Option | Description |
---|---|
:message | Le message ActiveRecord ajouté aux erreurs d'enregistrement (par défaut : :invalid_array ) |
:validity_method | La méthode qui sera envoyée à chaque élément du tableau (par défaut : :valid? ) |
RgbHexValidator
class Flag < ApplicationRecord
validates :color , rgb_hex : true
end
flag = Flag . new ( color : '#ff0000' )
flag . valid? # => true
flag . color # => '#ff0000'
flag = Flag . new ( color : '#zzzzzz' )
flag . valid? # => false
flag . color # => '#'
Option | Description |
---|---|
:regex | L'expression régulière utilisée pour valider le code (par défaut : `/A#([a-f0-9]{6} |
:cleanup_regex | L'expression régulière utilisée pour valider le nettoyage de l'entrée avant de la valider/l'enregistrer (par défaut : /[^#a-f0-9]/i ) |
:message | Le message ActiveRecord ajouté aux erreurs d'enregistrement (par défaut : :invalid_rgb_hex ) |
Louche utilise des messages ActiveRecord standard. Voici à quoi pourrait ressembler votre fichier config/locales/activerecord.en.yml
:
en :
errors :
messages :
invalid_email : is not a valid email address
invalid_url : is not a valid URL
invalid_phone_number : is not a valid phone number
invalid_postal_code : is not a valid postal code
invalid_array : contains invalid items
invalid_rgb_hex : is not a valid color
Louche
est © 2014-2015 Mirego et peut être distribué librement sous la licence New BSD. Voir le fichier LICENSE.md
.
Mirego est une équipe de passionnés qui croient que le travail est un lieu où l'on peut innover et s'amuser. Nous sommes une équipe de personnes talentueuses qui imaginent et construisent de belles applications Web et mobiles. Nous nous réunissons pour partager des idées et changer le monde.
Nous aimons aussi les logiciels open source et nous essayons de redonner autant que possible à la communauté.