При использовании вызова ProС# для вызова лямбда-функции в Ruby self всегда заканчивается значением, которое оно имело при определении функции, а не значением, которое оно имеет при вызове функции, например:
$p = lambda { self }
class Dummy
def test
$p.call
end
end
d = Dummy.new
> d.test
=> main
Вызов test возвращает main, когда то, что я намеревался вернуть, #<Dummy:0xf794> - экземпляр Dummy, который был значением self в точке кода, в котором я вызывал $p.
В Javascript я бы просто передал объект, который я хочу быть "вызываемым" в качестве первого аргумента call. Есть ли такая возможность в Ruby, позволяющая мне установить произвольный объект или, по крайней мере, текущее значение self, как новое значение для self при вызове Proc?