lib/extenso_pt.rb in extenso_pt-0.4.1 vs lib/extenso_pt.rb in extenso_pt-0.4.2
- old
+ new
@@ -104,28 +104,30 @@
# @option moeda [Symbol] :lc locale do extenso - portugûes de portugal (:pt) ou brasil (:br)
# @option moeda [String] :msingular Moeda no singular - por defeito pode ser obtida do <b>:mplural menos "S"</b> (se terminar em "S")
# @option moeda [String] :fsingular Fração no singular - por defeito pode ser obtida do <b>:fplural menos "S"</b> (se terminar em "S")
# @option moeda [String] :mplural Moeda no plural - por defeito pode ser obtida do <b>:msingular+"S"</b>
# @option moeda [String] :fplural Fração no plural - por defeito pode ser obtida do <b>:fsingular+"S"</b>
- # @return [String, Array<String>] extenso se o objecto for (String, Float, Integer) ou Array dos extensos se o objecto for (Array, Range, Hash)
+ # @return [String, Array<String>, Hash<String>] extenso se o objecto for (String, Float, Integer), Array dos extensos se o objecto for (Array, Range) ou Hash dos extensos se o objecto for (Hash)
def extenso(moeda={lc:(:pt),msingular:"EURO",fsingular:"CÊNTIMO"})
moeda={lc:(:br),msingular:"REAL",mplural:"REAIS",fsingular:"CENTAVO"} if (moeda[:lc]==:br&&!moeda[:mplural]&&!moeda[:fplural])
@@lc=LC.include?(moeda[:lc])?moeda[:lc]:(:pt)
@@ms=moeda[:msingular]?moeda[:msingular]:moeda[:mplural].to_s[-1]=="S"?moeda[:mplural][0..-2]:"EURO"
@@cs=moeda[:fsingular]?moeda[:fsingular]:moeda[:fplural].to_s[-1]=="S"?moeda[:fplural][0..-2]:"CÊNTIMO"
@@mp=moeda[:mplural]?moeda[:mplural]:@@ms+"S"
@@cp=moeda[:fplural]?moeda[:fplural]:@@cs+"S"
- if (self.respond_to?:to_a)
+ if (self.kind_of?Hash)
+ self.map{|k,v|[k,v.extenso(lc:(@@lc),msingular:@@ms,fsingular:@@cs,mplural:@@mp,fplural:@@cp)]}.to_h
+ elsif (self.respond_to?:to_a)
self.to_a.map{|a|a.extenso(lc:(@@lc),msingular:@@ms,fsingular:@@cs,mplural:@@mp,fplural:@@cp)}
else
n=self.to_d.to_s('F')
@@ai=n[/^\d+/].to_s.reverse.scan(/\d{1,3}/).map{|i|i.reverse.to_i}
@@ai.count>8?"":ExtensoPt.erecursivo+ExtensoPt.fracao((n[/\.\d*/].to_f*100).round)
end
end
end
-class Hash; include ExtensoPt;def to_a;self.values;end;end
+class Hash; include ExtensoPt;end
class Array; include ExtensoPt;end
class Range; include ExtensoPt;end
class Float; include ExtensoPt;end
class Integer;include ExtensoPt;end
class String; include ExtensoPt;end