From: Pat Maddox Date: 2006-05-14T15:28:29+09:00 Subject: "Seeing Metaclasses Clearly" I saw a link for why's article "Seeing Metaclasses Clearly" [1] earlier this week. Been looking at it, and honestly I can't say it's making things more clear for me. The final example is: class MailTruck def self.company( name ) meta_def :company do; name; end end end class HappyTruck < MailTruck company "Happy's -- We Bring the Mail, and That's It!" end I simply don't see how that's different from class MailTruck def self.company(name) instance_eval do define_method(name) { name } end end end except for, um, my code doesn't work - wrong number of arguments (0 for 1) I also don't understand why this doesn't work, I thought it was the same thing as the first example, just without the helper methods that why wrote: class Truck def self.company(name) class << self instance_eval do define_method(name) { name } end end end end Now after reading this I don't even have a clue how/why all the evals are supposed to be used. Thought I had it down, but I'm just way more confused after this article. I know there's already a post on the various evals, but can someone explain what's going on in this metclass article? Clearly, please. Pat [1] http://whytheluckystiff.net/articles/seeingMetaclassesClearly.html