def install_money_getter attribute, options={}
      
      define_method :"#{attribute}_with_exchange_typecasting" do
        currency = evaluate_money_option(options[:currency]) if options[:currency]
        
        test_for_currency_error(currency, attribute)
        
        time     = evaluate_money_option(options[:at]) if options[:at]
        
        if value = send(:"#{attribute}_without_exchange_typecasting")
          Exchange::Money.new(value) do |c|
            c.currency = currency
            c.time     = time if time
          end
        end
      end
      exchange_typecasting_alias_method_chain attribute
      
    end
def install_money_getter attribute, options={}
      
      define_method :"#{attribute}_with_exchange_typecasting" do
        currency = evaluate_money_option(options[:currency]) if options[:currency]
        
        test_for_currency_error(currency, attribute)
        
        time     = evaluate_money_option(options[:at]) if options[:at]
        
        if value = send(:"#{attribute}_without_exchange_typecasting")
          Exchange::Money.new(value) do |c|
            c.currency = currency
            c.time     = time if time
          end
        end
      end
      exchange_typecasting_alias_method_chain attribute
      
    end
Installs a money getter
 @!macro [attach] install_money_getter
   @method $1