No dia a dia sempre necessitamos dos super poderes das Expressões Regulares para validações de formulários, replaces em textos e tantas outras coisas mais, alguns patterns raramente mudam de um projeto para outro, o pattern para validar e-mails é um exemplo.
Pensando nisso e aproveitando a estrutura do Rails que já possui a pasta /lib
para armazenar nossos códigos customizados,
criei um module “ER” para ir colecionando os patterns rotineiros.
Neste post estou mostrando uma solução que encontrei pois ainda desconheço se o Rails possui alguma convenção para essa tarefa.
Vamos ver a ideia!
Na pasta /lib
criei um arquivo er.rb
que será nosso “repositório de ERs”.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Utilizando
Para exemplificar, vamos validar um model User.
1 2 3 4 5 |
|
Perceberam a chamada do pattern? :P
Para validação em front-end utilizando o atributo pattern
do HTML5, podemos reaproveitar nossos patterns, só que
precisamos de um passo a mais devido o padrão ser ER crua sem estar contida em “//” (barras).
Criei então um Help para fazer essa tarefa e as View continuarem fazendo apenas seu papel.
No arquivo app/helpers/application_helper.rb
incluir:
1 2 3 4 5 6 7 |
|
Notem que usei Module#const_get
para pegar a referência da constante informado e no fim o
Regexp#source
que retorna a string original que está envolvida por “//”
Ficando no formulário:
1
|
|
Concluíndo
É isso ai, a intenção é só para mostar uma possibilidade de organizar as coisas, claro que deve possuir outras, dessa forma, aceito sugestões e dicas. :)
Para uma consulta rápida sobre metacaracteres o Aurélio disponibiliza um guia rápido http://piazinho.com.br/download/expressoes-regulares-3-tabelas.pdf.
Para se aprofundar, leia o livro Expressões Regulares - Uma abordagem divertida.