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.