It seems that, in Ruby, methods defined using def some_method
are bound permanently to the class they're defined in.
So, when you call .to_proc
on them they keep the binding of their original implementation, and you cannot rebind them. Well, you can, but only to an object of the same type as the first one. It's possible I could do some fancyness with inheritance, but I don't think so.
The solution becomes instead of using methods, I just put actual Proc
s into variables and use them then, as they're not bound until execution time.