oop/reopened_object.rb

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

# A method written in `class Object` reaches an object made by `Object.new`,
# replacing the one every object answers with.
class Object
  def to_s = "written"
  def inspect = "shown"
  def fresh_name = :fresh
end

plain = Object.new
p(plain.to_s)
p(plain.inspect)
p(plain.fresh_name)
puts(plain)
puts("#{plain}")
p(plain)

class Ordinary; end
p(Ordinary.new.to_s)

Output:

"written"
"shown"
:fresh
written
written
shown
"written"