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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/plata.rb', line 25
def humanize
words = []
number = self.to_f
if number.zero?
words << self.zero_string
elsif number > 0 && number < 1
words << I18n.t('plata.zero')
decimal = number.to_s.split('.').last
else
decimal = number.to_s.split(".")[1].nil? ? 0 : number.to_s.split(".")[1].to_i
number = number.to_s.split(".")[0]
number = number.rjust(33,'0').reverse
groups = number.scan(/.../)
words << number_to_words(groups[0].reverse)
(1..10).each do |number|
if groups[number].to_i > 0
case number.to_i
when 1,3,5,7,9
words << I18n.t("plata.thousand")
else
words << (groups[number].reverse.to_i > 1 ? "#{self.quantities[number]}" : "#{self.quantities[number]}") if I18n.locale == :en
words << (groups[number].reverse.to_i > 1 ? "#{self.quantities[number]}" : "#{self.quantities[number]}") if I18n.locale == :pt
words << (groups[number].reverse.to_i > 1 ? "#{self.quantities[number]}ones" : "#{self.quantities[number]}ón") if I18n.locale == :es
end
words << number_to_words(groups[number].reverse)
end
end
end
"#{words.reverse.join(' ')} #{conector} #{decimal}/100"
end
|