procs/binding_receiver_no_parens.rb

tests/_examples/procs/binding_receiver_no_parens.rb in the metorex repository.

# A proc's binding answers the `self` of the place the proc was written.
handler = proc { |id| id }
p handler.binding.receiver
class Holder
  def make
    proc { }
  end
end
holder = Holder.new
p holder.make.binding.receiver.equal?(holder)
p handler.dup == handler

Output:

main
true
true