methods/instance_exec_definee/top_level.rb

tests/_examples/methods/instance_exec_definee/top_level.rb in the metorex repository.

class Ledger
end

ledger = Ledger.new
ledger.instance_exec { eval %{def balance = 10} }
p ledger.singleton_methods
p Object.private_method_defined?(:balance)

ledger.instance_exec { load File.join(__dir__, "loaded_helper.rb") }
p ledger.singleton_methods
p Object.private_method_defined?(:loaded_helper)

Output:

[:balance]
false
[:balance]
true