When using Proc#call to call a lambda function in Ruby, self always ends up with the value that it had when the function was defined, rather than the value it has w
self
You may want to use instance_exec because it allows you to pass arguments to the block whereas instance_eval does not.
def eval_my_proc_with_args(*args, &block) instance_exec(*args, &block) end