Class: String

Inherits:
Object
  • Object
show all
Defined in:
lib/ext/string.rb

Instance Method Summary collapse

Instance Method Details

#a_decimal_localizadoString

Convierte una cadena a un decimal localizado.

Returns:

  • (String)

    El decimal localizado.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/ext/string.rb', line 18

def a_decimal_localizado
  if !self || self == ""
    return ""
  end

  delimiter = I18n.t("number.format.delimiter")
  # puts "delimiter=#{delimiter}"
  separator = I18n.t("number.format.separator")
  # puts "separator=#{separator}"
  neg = split("-").first
  if neg == ""
    num = split("-")[1]
    neg = "-"
  else
    num = self
    neg = ""
  end
  # puts "neg=#{neg}"
  pent = num.split(".").first
  # puts "pent=#{pent}"
  pdec = num.split(".")[1]
  # puts "pdec=#{pdec}"
  pent = pent.reverse.gsub(/\d{3}/, "\\&#{delimiter}")
  # puts "pent=#{pent}"
  pent = pent.reverse.sub(/^[#{delimiter}]/, "")
  # puts "pent=#{pent}"
  if pdec
    "#{neg}#{pent}#{separator}#{pdec}"
  else
    "#{neg}#{pent}"
  end
end

#a_decimal_nolocalizadoString

Convierte una cadena a un decimal no localizado. Basado en soluciones de stackoverflow.com/questions/6541209/decimals-and-commas-when-entering-a-number-into-a-ruby-on-rails-form

Returns:

  • (String)

    El decimal no localizado.



10
11
12
13
14
# File 'lib/ext/string.rb', line 10

def a_decimal_nolocalizado
  delimiter = I18n.t("number.format.delimiter")
  separator = I18n.t("number.format.separator")
  gsub(/[#{delimiter}#{separator}]/, delimiter => "", separator => ".")
end

#altas_bajasString

Convierte una cadena a altas y bajas, es decir, la primera letra de cada palabra en mayúscula y las demás en minúsculas.

Returns:

  • (String)

    La cadena convertida.



54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/ext/string.rb', line 54

def altas_bajas
  inip = true
  r = "".dup # descongela
  each_char do |c|
    r << if inip
      c.upcase
    else
      c.downcase
    end
    inip = !c.match(/^[[:alpha:]]$/)
  end
  r
end