On Mon, 15 Dec 2003, Hal Fulton wrote:

> But unless I'm missing something, it would be trivial to do this
> in Ruby, simply by defining method_missing for every class.


As usual, Matz & Ruby is way ahead of us...

class Object
  def method_missing(symbol)
  end
end

class Mallard
  def quack
    puts "Quack!"
  end
end

"SuperDuck".quack
1.quack
nil.quack
Mallard.new.quack


all = ["SuperDuck",-3, 4.0,nil,[], {}]
all.each {|d| d.quack}

ruby -w super_duck.rb
Quack!
Quack!

Everythings a Duck! All Hail the Super Duck!

Quack! Quack! Quack!


John Carter                             Phone : (64)(3) 358 6639
Tait Electronics                        Fax   : (64)(3) 359 4632
PO Box 1645 Christchurch                Email : john.carter / tait.co.nz
New Zealand

A Million Monkeys can inflict worse things than just Shakespeare on
your system.