JavaFree.org | RubyOnBr.org

Require, require e mais require O.o

Acompanhar Require, require e mais require O.o 7 posts, 5 participantes

Avatar rrsilva 181 posts

Seguinte estou fazendo um plugin para calculo de digitos verificadores de diversos tipos de documentos… Resolvi separar os códigos em arquivos separados e cheguei a isto aqui:

Alguma maneira de refatorar isso? Fico aberto a sugestões =)

Obrigado!

 
Avatar Rafael Mueller 53 posts

organizar isso dentro de outros arquivos?

Por exemplo, poderia ter um

dentro daih desse ie_states.rb vc colocaria o require dos outros estados.

Agrupe os requires que você sempre irá usar junto em 1 require e esse outro require faz as inclusões… acho que vai facilitar

 
Avatar Shairon Toledo 1428 posts
 
Avatar Bernardo Rufino 24 posts

Por que o require não aceita numero de argumentos variavel? Seria mais simples

 
Avatar Mereghost 1476 posts

Rufino:

Acho que o caso aqui não é se um número de argumentos variáveis seria ideal. Pelo que entendi ele tem um conjunto de validadores (CNPJ, Inscrição Estadual etc).
Ao invés de ter um arquivo para cada estado, não seria ideal ter uma única classe (num único arquivo) que fizesse essas checagens?

 
Avatar Bernardo Rufino 24 posts

Sim sim, entendi, unir seria melhor. Mas é meio off-topic a pergunta mesmo… hehehe

 
Avatar rrsilva 181 posts

Bom o plugin está funcionando desta maneira… no model eu tenho o seguinte código:

Esta validação só passa se a coluna for um cnpj ou cpf válido… isso abre possibilidades como:

Apenas inscrições de São Paulo e Rio de Janeiro

O método “validates_as_document” por sua vez, vai passar este array para uma classe chamada “Document” e consultar o seu método valid?

Então a classe Document (que recebe estes includes) faz um loop neste array, e verifica se ela mesma responde aos métodos “is_cnpj?” e “is_cpf?”, caso o método não exista ele automaticamente retorna false…

O código do Shairon Toledo ficou perfeito… era justamente oque eu precisava. Assim eu posso jogar arquivos novos na pasta document contendo apenas a lógica da validação, e o plugin já vai estar funcionando =)

Afinal além de Cnpj, Cpf, e IE`s temos CNS, Suframa entre outros