From: Ralph Shnelvar Date: 2012-03-07T01:34:31+09:00 Subject: Getting the class of an object. Consider; - - - class Dance def foo puts "foo is executed" 42 end end class Boogy < Dance def bar puts (foo.class) end end b = Boogy.new b.foo # prints "foo is executed" ... expected. b.bar # prints "foo is executed\nFixnum" ... not expected! - - - Let's focus on the line puts (foo.class) So let's say I'm in the middle of a debugging session trying to debug the bar method. I see this thing called "foo" and I want to know what it is. So I puts (foo.class) Since everything in ruby is an object and all objects have classes, I'm expecting to print out the class of this thing called foo. What happens, though is that foo gets executed (which is not what I want) and returns 42 ... whose class is Fixnum. Questions: How can I tell what class of object foo is without executing it? Is there a class called "Method" in the Ruby class hierarchy? What class of object does define_method return? Ralph Shnelvar