Escrever por extenso Ruby on Rails
Simple method to write out in Ruby on Rails
I decided to make this post to help other developers as I encountered difficulties and complications to write numbers and currencies in full.
I will not tell the whole story of why I needed this method, but to briefly I was working on a project it was necessary to write extensive currency in a particular report was generated, But after many searches and attempts to solutions of some holes better known as “BrazilianRails, MoneyRails, Helpers among others”, I found what would solve this quickly without much implementation. In my case had to do some treatments in the Controller and Model, but many of these solutions worked as Helpers in view, making it harder to implement.
But emfim with the aid of a logic originalmete made in PHP by Professor Fausto G. Cintra, emplementei in ruby in a method, and then I ended up making a Gem to make available to those who have the same problem.
Se interessar a mais alguém, e quiser fazer parte desse projeto contribuindo para melhorar cada vez mais, tai o repositório: ExtensoBr, segue a baixo como usar. 😀
Instalação
Adicionando em sua Gemfile:
gem 'extensobr'
Ou instale você mesmo:
$ gem install extensobr
Exemplos de uso
Para obter o extenso de um número, utilize Extenso.numero.
irb
require ‘Extensobr.rb’
puts Extenso.numero(832); # oitocentos e trinta e dois
puts Extenso.numero(832, Extenso::GENERO_FEM) # oitocentas e trinta e duas
Para obter o extenso de um valor monetário, utilize Extenso.moeda.
require 'Extenso.rb'
IMPORTANTE: este método recebe um valor inteiro(int), para a contagem das casas decimais!
puts Extenso.moeda(15402) # cento e cinquenta e quatro reais e dois centavos
puts Extenso.moeda(47) # quarenta e sete centavos
puts Extenso.moeda(357082, 2, ['peseta', 'pesetas', Extenso::GENERO_FEM], ['cêntimo', 'cêntimos', Extenso::GENERO_MASC])
três mil, quinhentas e setenta pesetas e oitenta e dois cêntimos
Se você leu até aqui, obrigado, use e seja feliz!
Leave A Comment
You must be logged in to post a comment.