oop/singleton_class_predicate_parens.rb

tests/_examples/oop/singleton_class_predicate_parens.rb in the metorex repository.

class Holder
end

instance = Holder.new

puts(Holder.singleton_class?.inspect)
puts(Holder.singleton_class.singleton_class?.inspect)
puts(instance.singleton_class.singleton_class?.inspect)
puts(NilClass.singleton_class?.inspect)
puts(TrueClass.singleton_class?.inspect)
puts(FalseClass.singleton_class?.inspect)
puts(Module.new.singleton_class?.inspect)

opened = class << instance
  self
end
puts(opened.singleton_class?.inspect)

Output:

false
true
true
false
false
false
false
true