def texterize context
int_part, dec_part = context.number_parts
connector = context.options[:connector]
int_unit_one = context.options[:currency][:unit][:one]
int_unit_many = context.options[:currency][:unit][:many]
int_unit_more = context.options[:currency][:unit][:more]
dec_unit_one = context.options[:currency][:decimal][:one]
dec_unit_many = context.options[:currency][:decimal][:many]
unless int_unit_many
int_unit_many = int_unit_one+'s'
end
unless int_unit_more
int_unit_more = if int_unit_many.start_with?("a","e","i","o","u")
"d'"+int_unit_many
else
"de "+int_unit_many
end
end
unless dec_unit_many
dec_unit_many = dec_unit_one+'s'
end
int_unit = if int_part > 1
(int_part % 10**6).zero? ? int_unit_more : int_unit_many
else
int_unit_one
end
dec_unit = dec_part > 1 ? dec_unit_many : dec_unit_one
feminize = context.options[:currency][:unit][:feminine] || false
texterized_int_part = (texterize_by_group(int_part, 0, feminize).compact << int_unit).flatten.join(' ')
feminize = context.options[:currency][:decimal][:feminine] || false
texterized_dec_part = (texterize_by_group(dec_part, 0, feminize).compact << dec_unit).flatten.join(' ')
if dec_part.zero?
texterized_int_part
else
texterized_int_part << connector << texterized_dec_part
end
end