sexta-feira, 13 de agosto de 2010

Máscara monetária em ruby

É gente, finalmente saiu minha contribuição como gem e já adianto, lançarei mais 1 em breve.

Bom vamos ao problema: você tem uma classe com um atributo chamado salário. Mas você quer usar métodos de entrada e saída usando formatos monetários. A teoria é simples mas é um saco tratar isso, além de criar muitos métodos auxiliares acaba não tendo certas garantias.

Pensando nisto criei uma gem chamada Máscara Monetária. Mas quais são as vantagens? Bom primeiramente acredito que o maior benefício é tratar os valores como inteiro. Como assim? Tratar valores como decimal ou ponto flutuante pode ser um problema pois cada banco pode ter sua precisão. Calma, quando escrevo banco é apenas uma utilização mas você pode utilizá-la sem banco de dados. Voltando ao assunto, utilizando inteiro para armazenar você não terá problemas com arredondamentos.

Outro bom motivo é poder inserir valores com máscaras e estes serem convertidos para o formato correto ao serem armazenados.

Bom como é a primeira muitas coisas podem ser modificadas. Quem quiser participar do projeto é só me falar que coloco como commiter. A... o link é claro
github.com/rodrigotoledo/mascara_monetaria

2 comentários:

Anônimo disse...

Cara, qual o objetivo desse plugin?... isso funciona apenas com I18n.

Toledo in Rails disse...

Fala rapaz, então na verdade eu precisei pois tenho aplicações que não são em Rails mas sim apenas ruby. Então pense em transmitir e exibir certas informações formatadas de maneira fácil. Outra questão é que dados monetários são facilmente calculados quando valores float são transformados em inteiro, alguns frameworks em java por exemplo fazem isso pra evitar perder valores devido a precisão.

Mas veja que existe outro post no blog com screencast mostrando um pouco de composed_of que faz bastante coisa perto disso.