espero que el siguiente código funcione como se esperaba, pero me da un NoMethodError (método `foo privada', solicitado # < MiClase ...)¿Cómo agregar dinámicamente un attr_reader
class MyClass
end
my_object = MyClass.new
my_object.instance_variable_set(:@foo, "bar")
MyClass.send("attr_reader", :foo)
puts my_object.foo
El problema es Estoy usando un código literalmente idéntico en una aplicación más grande y funciona exactamente como esperaba, pero cuando lo simplifico a este ejemplo más básico, falla.
(entiendo que hay muchas otras maneras de hacer lo que estoy haciendo en Rubí)
el ejemplo funciona en el IRB pero no rubí ... –
@jleedev - me encontré con lo mismo (tanto en ruby y ruby 1.8.6 Empresa 1.8.7). irb es genial, pero si ejecuta exactamente los mismos comandos de un archivo ... ¿Crees que es un error en la implementación de Ruby (REE principalmente rehizo el recolector de basura)? –