Interestingly, Baz.new.send(:boo) works as expected.

irb(main):018:0> Baz.new.send(:boo)
Bar#boo
Foo#boo
=> nil

I am curious to see what the final explanation is as well wrt method.

V/r
Anthony

On 4/21/07, apefan / dodgeit.com <apefan / dodgeit.com> wrote:
> Baz#boo and Baz.new.method(:boo).call dosn't produce the same result.
> Does this surprise anyone?
>
> irb(main):001:0> class Foo
> irb(main):002:1>   def boo
> irb(main):003:2>     puts "Foo#boo"
> irb(main):004:2>   end
> irb(main):005:1> end
> => nil
> irb(main):006:0>
> irb(main):007:0* module Bar
> irb(main):008:1>   def boo
> irb(main):009:2>     puts "Bar#boo"
> irb(main):010:2>     super
> irb(main):011:2>   end
> irb(main):012:1> end
> => nil
> irb(main):013:0>
> irb(main):014:0* class Baz < Foo
> irb(main):015:1>   include Bar
> irb(main):016:1> end
> => Baz
> irb(main):017:0>
> irb(main):018:0* Baz.new.boo
> Bar#boo
> Foo#boo
> => nil
> irb(main):019:0> Baz.new.method(:boo).call
> Bar#boo
> NoMethodError: super: no superclass method `boo'
>         from (irb):10:in `boo'
>         from (irb):19:in `call'
>         from (irb):19
>         from :0
> irb(main):020:0>
>
>
>


-- 
Cell: 808 782-5046
Current Location: Melbourne, FL