Пусть существует class Example
, определяемый как:
class Example
def initialize(test='hey')
self.class.send(:define_method, :say_hello, lambda { test })
end
end
При вызове Example.new; Example.new
получаем a warning: method redefined; discarding old say_hello
. Это, я заключаю, должно быть потому, что он определяет метод в реальном классе (что имеет смысл, из синтаксиса). И это, конечно, окажется катастрофическим, если в их методах есть несколько экземпляров Example
с разными значениями.
Есть ли способ создать методы только для экземпляра класса из этого экземпляра?