From: Jesse Merriman Date: 2007-07-22T05:22:36+09:00 Subject: Overriding delegated methods I'm trying to use SimpleDelegator, but am having a problem overring a method. Here's a boiled-down version: $ cat delegator_test.rb #!/usr/bin/env ruby require 'delegate' class A def foo bar() #self.bar() end def bar 'original' end end class B < SimpleDelegator def initialize super A.new end def bar 'overridden' end end puts B.new.foo $ ./delegator_test.rb original I wanted "overridden" to be output. Is there a good way to do this? Since I'm changing the delegated object with __setobj__, subclassing won't work, and I'd rather not have to override all methods that call overridden methods. Note that this works: > puts B.new.bar overridden -- Jesse Merriman jessemerriman@warpmail.net http://www.jessemerriman.com/