oop/singleton_class_of_parens.rb
tests/_examples/oop/singleton_class_of_parens.rb in the metorex repository.
widget = Object.new
opened = class << widget
self
end
puts(opened == widget.singleton_class)
puts(nil.singleton_class == NilClass)
puts(true.singleton_class == TrueClass)
puts(false.singleton_class == FalseClass)
[42, 3.14, :name].each do |value|
begin
value.singleton_class
rescue TypeError => error
puts "#{error.class}: #{error.message}"
end
end
frozen = Object.new
frozen.freeze
puts frozen.singleton_class.frozen?
thawed = Object.new
puts thawed.singleton_class.frozen?
puts(-"deduplicated")
puts(+"mutable")
Output:
true
true
true
true
TypeError: can't define singleton
TypeError: can't define singleton
TypeError: can't define singleton
true
false
deduplicated
mutable