From: Neil Mc Laughlin Date: 2004-06-14T20:13:42+09:00 Subject: method_missing and send I'm in the process of writing a logging package for a project. The actual logging methods can be specified at runtime and are implemented with a class method_missing call. That works fine until I call the warn method using 'send'. I would have expected the object to respond identically to both the direct invocation and the indirect invocation via 'send'. Is this a bug in ruby or have I missed something? class B def self.method_missing(sym, *args) puts "%s: %s"%[sym, args[1]] end end B.log(self, "There was a young man called McKnight,") B.send(:log, self, "Who could travel faster than light.") B.warn(self, "One day at about noon, he went to the moon") B.send(:warn, self, "And arrived back the previous night.") bash-2.05b$ ruby -v ruby 1.8.1 (2004-01-27) [i386-mswin32] bash-2.05b$ bash-2.05b$ tmp.rb log: There was a young man called McKnight, log: Who could travel faster than light. warn: One day at about noon, he went to the moon ./tmp.rb:71:in `warn': wrong number of arguments(2 for 1) (ArgumentError) from ./tmp.rb:71:in `send' from ./tmp.rb:71 bash-2.05b$ Neil.