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!