From: George Moschovitis Date: 2002-04-15T02:21:00+09:00 Subject: inspect object attributes Hi all, i need some help with finding attributes of an object lets say i have: class Obj1 attr_accessor :val1 end module Mod1 attr_accessor :val2 end module Mod2 attr_accessor :val3 end class Obj2 < Obj1 include Mod1 include Mod2 attr_accessor :val4 end i need a method like this obj = Obj2.new inspect obj -> ['val1', 'val2', 'val3', 'val4'] any help really apreciated ! thanks in advance ! -g. ps: i tried something like this, but i am sure there is a MUCH better solution. def inspect(object) attributes = [] values = [] object.class.included_modules.each do |m| m.instance_methods.grep(%r{=}).each do |a| a.chop! v = object.send(a) if v if v.kind_of? String values << "'" + v + "'" else values << v end attributes << a end end if Kernel != m end self.instance_methods.grep(%r{=}).each do |a| a.chop! v = object.send(a) if v if v.kind_of? String values << "'" + v + "'" else values << v end attributes << a end end [attributes, values] end