Sha256: d0346f34982e4c7bddca687d1dbbd0051b1abec0a42322db6acd6aadb58b9d45
Contents?: true
Size: 1.21 KB
Versions: 3
Compression:
Stored size: 1.21 KB
Contents
# frozen_string_literal: true require 'extensobr' # Extende a classe Integer adicionando o metodo por_extenso, por_extenso_moeda e por_extenso_numero String.class_eval do # Um wapper para o metodo Extenso.numero ou Extenso.moeda # PARÂMETROS: # type (Symbol) O tipo especifico que deseja gerar # # Caso o tipo não seja informado é inferido primeiro tentando encontrar um padrão de Float # caso encontre ele supõe que o tipo é moeda. Caso contrario o tipo será numero. def por_extenso(*args) return por_extenso_numero(*args) if args.include? :numero return por_extenso_moeda(*args) if args.include? :moeda return por_extenso_ordinal(*args) if args.include? :ordinal number = scan(/\d+[,.]\d+/).first return por_extenso_moeda(*args) unless number.nil? || number.empty? por_extenso_numero(*args) end def por_extenso_moeda(*args) number = gsub('_', '').scan(/\d+[,.]\d+/).first params = args - [:moeda] Extenso.moeda(number.to_f, *params) end def por_extenso_numero(*args) number = scan(/\d/)&.join('') Extenso.numero(number&.to_i, *args) end def por_extenso_ordinal(*args) number = scan(/\d/)&.join('') Extenso.ordinal(number&.to_i, *args) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
extensobr-1.2.2 | lib/core_exts/string.rb |
extensobr-1.2.1 | lib/core_exts/string.rb |
extensobr-1.2.0 | lib/core_exts/string.rb |