lib/extenso_pt.rb in extenso_pt-0.5.4 vs lib/extenso_pt.rb in extenso_pt-0.5.5

- old
+ new

@@ -22,18 +22,18 @@ pt: ['', 'CEM', 'CENTO', 'DUZENTOS', 'TREZENTOS', 'QUATROCENTOS', 'QUINHENTOS', 'SEISCENTOS', 'SETECENTOS', 'OITOCENTOS', 'NOVECENTOS'], br: ['', 'CEM', 'CENTO', 'DUZENTOS', 'TREZENTOS', 'QUATROCENTOS', 'QUINHENTOS', 'SEISCENTOS', 'SETECENTOS', 'OITOCENTOS', 'NOVECENTOS'] }.freeze -A1E24 = { - pt: ['', 'MIL', ' MILHÃO', ' MIL MILHÃO', ' BILIÃO', ' MIL BILIÃO', - ' TRILIÃO', ' MIL TRILIÃO', '', ' MIL', ' MILHÕES', ' MIL MILHÕES', - ' BILIÕES', ' MIL BILIÕES', ' TRILIÕES', ' MIL TRILIÕES'], - br: ['', 'MIL', ' MILHÃO', ' BILHÃO', ' TRILHÃO', ' QUADRILHÃO', - ' QUINTILHÃO', ' SEXTILHÃO', '', ' MIL', ' MILHÕES', ' BILHÕES', - ' TRILHÕES', ' QUADRILHÕES', ' QUINTILHÕES', ' SEXTILHÕES'] -}.freeze +S1E24 = { pt: ['', 'MIL', ' MILHÃO', ' MIL MILHÃO', ' BILIÃO', + ' MIL BILIÃO', ' TRILIÃO', ' MIL TRILIÃO'], + br: ['', 'MIL', ' MILHÃO', ' BILHÃO', ' TRILHÃO', + ' QUADRILHÃO', ' QUINTILHÃO', ' SEXTILHÃO'] }.freeze +P1E24 = { pt: ['', ' MIL', ' MILHÕES', ' MIL MILHÕES', ' BILIÕES', + ' MIL BILIÕES', ' TRILIÕES', ' MIL TRILIÕES'], + br: ['', ' MIL', ' MILHÕES', ' BILHÕES', ' TRILHÕES', + ' QUADRILHÕES', ' QUINTILHÕES', ' SEXTILHÕES'] }.freeze # @author Hernani Rodrigues Vaz module ExtensoPt class Error < StandardError; end @@ -41,19 +41,20 @@ # # @param [Integer] mil o valor dum grupo 3 digitos a converter # @return [String] o extenso das centenas def self.e900(mil) A1000[@lc][(mil > 100 ? 1 : 0) + mil / 100] + - (mil > 100 && (mil % 100).positive? ? ' E ' : '') + (mil > 100 && (mil % 100).positive? ? ' E ' : '') # proposicao end # Produz o extenso das dezenas em portugues de portugal ou brasil. # # @param [Integer] mil o valor dum grupo 3 digitos a converter # @return [String] o extenso das dezenas def self.e90(mil) - A0100[@lc][mil % 100 / 10] + (mil > 20 && (mil % 10).positive? ? ' E ' : '') + A0100[@lc][mil % 100 / 10] + + (mil > 20 && (mil % 10).positive? ? ' E ' : '') # proposicao end # Produz o extenso das unidades em portugues de portugal ou brasil. # # @param [Integer] cem o valor dum grupo 3 digitos a converter @@ -102,11 +103,11 @@ # # @param [Integer] pos posicao actual nos grupos 3 digitos do valor monetario # @return [String] qualificador grupo de 3 digitos def self.e1e24(pos) if @ai[pos].positive? - A1E24[@lc][@ai[pos] > 1 ? 8 + pos : pos] + @ai[pos] > 1 ? P1E24[@lc][pos] : S1E24[@lc][pos] else '' end end @@ -166,12 +167,9 @@ # parte fracionaria do valor monetario # ex: 123022.12 => 12 # arredondada a 2 casas decimais (centimos/centavos) @nf = (dig[/\.\d*/].to_f * 100).round end - - private_class_method :pintfra, :pcontrolo, :esep, :edg3, :e1e24, - :e900, :e90, :e9, :ef99, :efim # Converte um objeto criando extenso(s) em portugues de portugal ou brasil. # # @param [Object] objeto objeto a converter # (String, Float, Integer, Array, Range, Hash)