You could overload the  methods you require.  For instance if you want
to be able to add two Money objects togeter and get a Money object as
the result using the expression 'money1 + money2' you could do

>> class Money
>>   attr_accessor :value
>>   def+(other)
>>     Money.new(@value + other.value)
>>   end
>>   def initialize(value)
>>     @value = value
>>   end
>> end
=> nil
>> m1 = Money.new(5)
=> #<Money:0x2dbb018 @value=5>
>> m2 = Money.new(10)
=> #<Money:0x2db9098 @value=10>
>> m1 + m2
=> #<Money:0x2db17d8 @value=15>

Farrel