introspection/class_own_methods.rb

tests/_examples/introspection/class_own_methods.rb in the metorex repository.

# Every class answers the methods Class defines, which Class lists as its
# own, apart from the ones it inherits from Module.
names = %i[allocate superclass subclasses attached_object new]
p(names.map { |name| Object.respond_to?(name) })
p(names.map { |name| RubyVM::InstructionSequence.respond_to?(name) })
p(names.map { |name| Comparable.respond_to?(name) })
p(Class.instance_methods(false).sort)
p(Class.public_instance_methods(false).sort)
p(Class.private_instance_methods(false).sort)
p(Class.instance_methods.include?(:alias_method))
p(Object.superclass)

Output:

[true, true, true, true, true]
[true, true, true, true, true]
[false, false, false, false, false]
[:allocate, :attached_object, :new, :subclasses, :superclass]
[:allocate, :attached_object, :new, :subclasses, :superclass]
[:inherited, :initialize]
true
BasicObject