69: def number_to_currency(number, options = {})
70: options = Language[:numbers].stringify_keys.update(Language[:helpers, :number_to_currency].stringify_keys).update(options.stringify_keys)
71: options = options.stringify_keys
72:
73: precision, unit, separator, delimiter, order = options.delete('precision'){2},
74: options.delete('unit'){'$'},
75: options.delete('separator'){'.'},
76: options.delete('delimiter'){','},
77: options.delete('order'){[:unit, :main, :separator, :fraction]}.collect{|e| e.to_sym}
78: separator = "" unless precision > 0
79:
80: begin
81: main, fraction = number_with_precision(number, precision).split(Language[:numbers, :separator])
82: order[order.index(:unit)] = unit
83: order[order.index(:main)] = number_with_delimiter(main, delimiter)
84: order[order.index(:separator)] = separator
85: order[order.index(:fraction)] = fraction
86: order.join
87: rescue
88: number
89: end
90: end