lib/extenso_pt.rb in extenso_pt-0.7.1 vs lib/extenso_pt.rb in extenso_pt-0.7.2
- old
+ new
@@ -39,14 +39,15 @@
# converte objecto num Array com os valores convertidos nos seus extensos
elsif respond_to?(:to_a) then to_a.map(&:processa)
else
# converte objeto em string digitos utilizando bigdecimal para
# evitar problemas com aritmetica virgula flutuante em valores >1e12
+ # valores negativos sao convertidos em positivos
# parametrizar parte inteira/fracionaria (@ai, @nf) da string digitos
- ExtensoPt.prif(to_d.to_s('F'))
+ ExtensoPt.prif(to_d.abs.to_s('F'))
- # processar extenso - valores >1e24 sao ignorados
+ # processar extenso - valores >= 1e24 sao ignorados
ExtensoPt.cvai.count > 8 ? '' : ExtensoPt.ejun
end
end
# @return [Hash<String, Symbol>] parametrizacao moeda por defeito para :br & inferencias & errados
@@ -80,11 +81,11 @@
def romana
# converte os valores do Hash
if is_a?(Hash) then transform_values(&:romana)
# converte objecto num Array com os valores convertidos
elsif respond_to?(:to_a) then to_a.map(&:romana)
- # numeracao romana a partir de inteiro ou string digitos (ignora parte fracionaria)
- elsif (inteiro = to_i) != 0 then ExtensoPt.ri2r(inteiro)
+ # numeracao romana a partir de inteiro ou string digitos (ignora parte fracionaria & negativos)
+ elsif (inteiro = to_i) != 0 then ExtensoPt.ri2r(inteiro.abs)
# inteiro a partir da numeracao romana
else RO_RE.match?(to_s) ? ExtensoPt.rr2i(upcase, 0) : ''
end
end
end