# File lib/currency-in-words.rb, line 40
    def number_to_currency_in_words number, options = {}

      options.symbolize_keys!

      currency_in_words = I18n.translate('number.currency_in_words''number.currency_in_words', :locale => options[:locale], :default => {})

      defaults = DEFAULT_CURRENCY_IN_WORDS_VALUES.merge(currency_in_words)

      options  = defaults.merge!(options) 

      unless options[:currencies].has_key?(:default)
        options[:currencies].merge!(DEFAULT_CURRENCY_IN_WORDS_VALUES[:currencies])
      end

      format     = options.delete(:format)
      currency   = options.delete(:currency)
      currencies = options.delete(:currencies)
      options[:currency]  = currency && currencies.has_key?(currency) ? currencies[currency] : currencies[:default]
      options[:locale]  ||= I18n.default_locale

      if number.to_f < 0
        format = options.delete(:negative_format)
        number = number.respond_to?("abs") ? number.abs : number.sub(/^-/, '')
      end

      options_precision = {
        :precision => 2,
        :delimiter => '',
        :significant => false,
        :strip_insignificant_zeros => false,
        :separator => '.',
        :raise => true
      }

      begin
        rounded_number = number_with_precision(number, options_precision)
      rescue ActionView::Helpers::NumberHelper::InvalidNumberError => e
        if options[:raise]
          raise
        else
          rounded_number = format.gsub(/%n/, e.number)
          return e.number.to_s.html_safe? ? rounded_number.html_safe : rounded_number
        end
      end

      begin
        klass = "CurrencyInWords::#{options[:locale].to_s.capitalize}Texterizer".constantize
      rescue NameError
        if options[:raise]
          raise NameError, "Implement a class #{options[:locale].to_s.capitalize}Texterizer to support this locale, please."
        else
          klass = EnTexterizer
        end
      end

      number_parts = rounded_number.split(options_precision[:separator]).map(&:to_i)
      texterizer = CurrencyInWords::Texterizer.new(klass.new, number_parts, options)
      texterized_number = texterizer.texterize
      format.gsub(/%n/, texterized_number).html_safe
    end