¿Es posible cambiar el enlace de un procedimiento durante el tiempo de invocación?Cambiar el enlace `Proc` durante la invocación
class AllValidator
def age_validator
Proc.new {|value| self.age > value }
end
end
class Bar
attr_accessor :age
def doSomething
validator = AllValidator.new.age_validator
validator.call(25) # How to pass self as the binding?
end
end
En el código anterior, ¿cómo cambio la vinculación del proceso durante la invocación? ¿Hay alguna manera de pasar el enlace de forma muy similar a la función eval
?
Nota Si el ejemplo anterior fuera real, usaría mixin
/inheritence
etc. Estoy utilizando el código para demostrar mi escenario problema.
¿Eso le permite pasar un argumento a 'validator'? –
'instance_eval' tiene un método hermano que le permite hacer eso, consulte la actualización anterior. – molf
+1 Gracias por la respuesta detallada. –