It really has nothing to do with eval, your just setting a local
variable.

An unfortuate side effect of the setter notation is that it conflicts
with local var setting. Local var setting wins out, so you have to use
self as the reciever in order to tell ruby you mean the setter method.

T.