ruby introspection class