Module: ExtensoReal
- Includes:
- Extenso
- Defined in:
- lib/brnumeros/number_portuguese.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"
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
# File 'lib/brnumeros/number_portuguese.rb', line 124 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'
111 112 113 |
# File 'lib/brnumeros/number_portuguese.rb', line 111 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
116 117 118 |
# File 'lib/brnumeros/number_portuguese.rb', line 116 def por_extenso_em_reais ExtensoReal.por_extenso_em_reais(self) end |