[Trans <transfire / gmail.com>, 2005-04-25 02.04 CEST]
> Have a look at this. Run it as is, then unremark the comment section.
> Something strange is a foot here.
[ snip example ]
> # my results
> # w/ comment  : "hello"
> # w/o comment : "come on"

Two things here:

First, methods in the Delegator class (or subclass) are not forwarded:

  require 'delegate.rb'
  class SD < SimpleDelegator
          def b
                  puts "sb.b"
          end
  end

  class X
          def b
                  puts "x.b"
          end
  end

  x=X.new
  sd = SD.new(x)
  sd.b # => "sb.b"

Second, when you include a module, it overwrites (overrides? obscures?) any
method of the same name that you had:

  module M
          def b
                  puts "m.b"
          end
  end
   
  class WW
          def initialize
                  (class<<self;self;end).class_eval{ include M }
          end
          def b
                  puts "ww.b"
          end
  end
   
  WW.new.b # => m.b

Combination of the two: your case.

Good luck.