Module: ExtensoReal
- Includes:
- Extenso
- Defined in:
- lib/brdinheiro_lite/extenso_real.rb
Class Method Summary collapse
-
.por_extenso_em_reais(valor) ⇒ Object
Escreve o numero por extenso em reais.
Instance Method Summary collapse
-
#por_extenso_em_reais ⇒ Object
Escreve por extenso em reais.
-
#to_extenso_real ⇒ Object
Escreve por extenso em reais.
Methods included from Extenso
#por_extenso, por_extenso, #to_extenso
Class Method Details
.por_extenso_em_reais(valor) ⇒ Object
Escreve o numero por extenso em reais.
Exemplo:
Extenso.por_extenso_em_reais(1) ==> "um real"
Extenso.por_extenso_em_reais(100) ==> "cem reais"
Extenso.por_extenso_em_reais(100.58) ==> "cem reais e cinquenta e oito centavos"
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/brdinheiro_lite/extenso_real.rb', line 24 def ExtensoReal.por_extenso_em_reais(valor) negativo=(valor<0)? " negativo" : "" negativos=(valor<0)? " negativos" : "" valor = valor.abs return 'grátis' if valor == 0 case valor when Integer extenso = Extenso.por_extenso(valor) if extenso =~ /^(.*)(ão$|ões$)/ complemento = 'de ' else complemento = '' end %(#{extenso} #{valor <= 1 ? "real#{negativo}": "#{complemento}reais#{negativos}"}) when Float real,cents=("%.2f" % valor).split(/\./).map{ |m| m.to_i} valor_cents=Extenso.por_extenso(cents%100) valor_cents+= case cents.to_i%100 when 0 then "" when 1 then " centavo" when 2..99 then " centavos" end if real.to_i > 0 "#{ExtensoReal.por_extenso_em_reais(real.to_i)}#{cents > 0 ? ' e ' + valor_cents + negativos : real.to_i > 1 ? negativos : negativo }" else if (cents.to_i%100)==1 "#{valor_cents}#{negativo}" else "#{valor_cents}#{negativos}" end end else ExtensoReal.por_extenso_em_reais(valor.to_s.strip.gsub(/[^\d]/,'.').to_f) end end |
Instance Method Details
#por_extenso_em_reais ⇒ Object
Escreve por extenso em reais.
Exemplo:
1.por_extenso_em_reais ==> 'um real'
(100.58).por_extenso_em_reais ==> 'cem reais e cinquenta e oito centavos'
11 12 13 |
# File 'lib/brdinheiro_lite/extenso_real.rb', line 11 def por_extenso_em_reais ExtensoReal.por_extenso_em_reais(self) end |
#to_extenso_real ⇒ Object
Escreve por extenso em reais.
Exemplo:
1.por_extenso_em_reais ==> 'um real'
(100.58).por_extenso_em_reais ==> 'cem reais e cinquenta e oito centavos'
Alias para por_extenso_em_reais
16 17 18 |
# File 'lib/brdinheiro_lite/extenso_real.rb', line 16 def por_extenso_em_reais ExtensoReal.por_extenso_em_reais(self) end |