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

- old
+ new

@@ -126,10 +126,11 @@ dg3 + e1e24(pos) end # Parametrizar controle singular/plural & proposicoes # + # @return [void] def self.pcontrolo # soma grupos 1,2 (primeiros 6 digitos) @s6 = @ai[0].to_i + @ai[1].to_i * 2 # soma grupos 3.. (digitos acima de 6) @m6 = @ai[2..-1].to_a.inject(:+).to_i * 2 @@ -157,10 +158,11 @@ end # Parametrizar parte inteira/fracionaria do valor monetario # # @param [String] dig string de digitos rdo valor monetario + # @return [void] def self.pintfra(dig) # parte inteira do valor monetario => array grupos 3 digitos # ex: 123022.12 => [22, 123] @ai = dig[/^\d+/].to_s.reverse.scan(/\d{1,3}/).map { |i| i.reverse.to_i } @@ -172,20 +174,21 @@ # Converte um objeto criando extenso(s) em portugues de portugal ou brasil. # # @param [Object] objeto objeto a converter # (String, Float, Integer, Array, Range, Hash) - # @return [String] extenso se objecto for (String, Float, Integer), - # Array<extensos> se objecto for (Array, Range), - # Hash<extensos> se objecto for (Hash) - def self.pobjeto(obj) + # @return [String, Array<extensos>, Hash<extensos>] string extenso + # se objecto for (String, Float, Integer), + # array se objecto for (Array, Range), + # hash se objecto for (Hash) + def self.eobjeto(obj) if obj.is_a?(Hash) # converte os valores do Hash nos seus extensos - devolve um Hash - obj.map { |k, v| [k, pobjeto(v)] }.to_h + obj.map { |k, v| [k, eobjeto(v)] }.to_h elsif obj.respond_to?(:to_a) # converte o objecto num Array com os extensos dos valores - obj.to_a.map { |v| pobjeto(v) } + obj.to_a.map { |v| eobjeto(v) } else # converte objeto numa string de digitos # usa bigdecimal/util para evitar aritmetica binaria # (tem problemas com valores >1e12) # qualquer valor nao convertivel (ex: texto) resulta em "0.0" @@ -208,11 +211,12 @@ # inferido do plural menos "S" # @option moeda [String] :fsingular fracao no singular - # inferido do plural menos "S" # @option moeda [String] :mplural moeda no plural # @option moeda [String] :fplural fracao no plural - def self.isingular(moeda) + # @return [void] + def self.psingular(moeda) @ms = moeda[:msingular] || (moeda[:mplural].to_s[-1] == 'S' ? moeda[:mplural][0..-2] : 'EURO') @cs = moeda[:fsingular] || (moeda[:fplural].to_s[-1] == 'S' ? moeda[:fplural][0..-2] : 'CÊNTIMO') end @@ -226,11 +230,12 @@ # @option moeda [String] :fsingular fracao no singular # @option moeda [String] :mplural moeda no plural - # inferido do singular mais "S" # @option moeda [String] :fplural fracao no plural - # inferido do singular mais "S" - def self.iplural(moeda) + # @return [void] + def self.pplural(moeda) # somente [:pt, :br] @lc = LC.include?(moeda[:lc]) ? moeda[:lc] : :pt @mp = moeda[:mplural] || @ms + 'S' @cp = moeda[:fplural] || @cs + 'S' @@ -243,24 +248,25 @@ # portugues de portugal (:pt) ou brasil (:br) # @option moeda [String] :msingular moeda no singular # @option moeda [String] :fsingular fracao no singular # @option moeda [String] :mplural moeda no plural # @option moeda [String] :fplural fracao no plural - # @return [String] extenso se objecto for (String, Float, Integer), - # Array<extensos> se objecto for (Array, Range), - # Hash<extensos> se objecto for (Hash) + # @return [String, Array<extensos>, Hash<extensos>] string extenso + # se objecto for (String, Float, Integer), + # array se objecto for (Array, Range), + # hash se objecto for (Hash) def extenso(moeda = { lc: :pt, msingular: 'EURO', fsingular: 'CÊNTIMO' }) # parametrizacao por defeito para :br if moeda[:lc] == :br && !moeda[:msingular] && !moeda[:mplural] moeda.merge!(msingular: 'REAL', mplural: 'REAIS', fsingular: 'CENTAVO') end # parametrizar moeda - ExtensoPt.isingular(moeda) - ExtensoPt.iplural(moeda) + ExtensoPt.psingular(moeda) + ExtensoPt.pplural(moeda) - # processar objeto - ExtensoPt.pobjeto(self) + # extenso do objeto + ExtensoPt.eobjeto(self) end end # permite obter um Hash com valores numericos convertidos nos seus extensos class Hash