def to other, options={}
      other = ISO.assert_currency!(other)

      if api_supports_currency?(currency) && api_supports_currency?(other)
        opts = { :at => time, :from => self }.merge(options)
        Money.new(api.new.convert(value, currency, other, opts), other, opts)
      elsif fallback!
        to other, options
      else
        raise_no_rate_error(other)
      end
    rescue ExternalAPI::APIError
      if fallback!
        to other, options
      else
        raise
      end
    end
def to other, options={}
      other = ISO.assert_currency!(other)

      if api_supports_currency?(currency) && api_supports_currency?(other)
        opts = { :at => time, :from => self }.merge(options)
        Money.new(api.new.convert(value, currency, other, opts), other, opts)
      elsif fallback!
        to other, options
      else
        raise_no_rate_error(other)
      end
    rescue ExternalAPI::APIError
      if fallback!
        to other, options
      else
        raise
      end
    end
Converts this instance of currency into another currency
 @return [Exchange::Money] An instance of Exchange::Money with the converted number and the converted currency
 @param [Symbol, String] other The currency to convert the number to
 @param [Hash] options An options hash
 @option [Time] :at The timestamp of the rate the conversion took place in
 @example convert to 'chf'
   Exchange::Money.new(40,:usd).to(:chf)
 @example convert to 'sek' at a specific rate
   Exchange::Money.new(40,:nok).to(:sek, :at => Time.gm(2012,2,2))