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