Module | Extenso |
In: |
vendor/plugins/brazilian-rails/lib/number_portuguese.rb
|
Escreve o numero por extenso.
Exemplo:
Extenso.por_extenso(1) ==> "um" Extenso.por_extenso(100) ==> "cem" Extenso.por_extenso(158) ==> "cento e cinquenta e oito"
# File vendor/plugins/brazilian-rails/lib/number_portuguese.rb, line 65 65: def Extenso.por_extenso(numero) 66: n=numero.to_i.abs 67: return case n 68: when 0..9: @@unidade[n].to_s 69: when 10..19: @@dezena[n].to_s 70: when 20..99: 71: v=n % 10 72: if v== 0 73: @@dezena[n].to_s 74: else 75: "#{@@dezena[n-v]} e #{por_extenso(v)}" 76: end 77: when 100 78: "cem" 79: when 101..999 80: v=n % 100 81: if v== 0 82: @@centena[n].to_s 83: else 84: "#{@@centena[n-v]} e #{por_extenso(v)}" 85: end 86: when 1000..999999 87: m,c=n/1000,n%1000 88: %(#{por_extenso(m)} mil#{c > 0 ? " e #{por_extenso(c)}":''}) 89: when 1_000_000..999_999_999 90: mi,m=n/1_000_000,n%1_000_000 91: %(#{por_extenso(mi)} milh#{mi > 1 ? 'ões':'ão'}#{m > 0 ? " e #{por_extenso(m)}" : ''}) 92: when 1_000_000_000..999_999_999_999 93: bi,mi=n/1_000_000_000,n%1_000_000_000 94: %(#{por_extenso(bi)} bilh#{bi > 1 ? 'ões':'ão'}#{mi > 0 ? " e #{por_extenso(mi)}" : ''}) 95: when 1_000_000_000_000..999_999_999_999_999 96: tri,bi=n/1_000_000_000_000,n%1_000_000_000_000 97: %(#{por_extenso(tri)} trilh#{tri > 1 ? 'ões':'ão'}#{bi > 0 ? " e #{por_extenso(bi)}" : ''}) 98: else 99: raise "Valor excede o permitido: #{n}" 100: end 101: end
Escreve o numero por extenso.
Exemplo:
1.por_extenso ==> 'um' 100.por_extenso ==> 'cem' 158.por_extenso ==> 'cento e cinquenta e oito'
# File vendor/plugins/brazilian-rails/lib/number_portuguese.rb, line 49 49: def por_extenso 50: Extenso.por_extenso(self) 51: end
DEPRECATION WARNING: use por_extenso, pois este sera removido no proximo release.
# File vendor/plugins/brazilian-rails/lib/number_portuguese.rb, line 54 54: def to_extenso 55: warn('DEPRECATION WARNING: use por_extenso, pois este sera removido no proximo release.') 56: self.por_extenso 57: end