x } You can look inside objects [1,2,3].methods [1,2,3].respond_to?(:to_s) [1,2,3].kind_of?(Hash) You can invoke methods without knowing their names a = [1,2,3] a.send(a.private_methods.first.to_sym) You can know about the runtime environment Fixnum.class_variables print File.read(__FILE__)