Я довольно новичок в метапрограмме Ruby. Я пытаюсь написать код, который генерирует «dup» для класса при его создании, используя список полей, которые должны быть переданы в конструктор. Тем не менее, я не могу понять, как получить доступ к имени класса, который я создаю, пока я его создаю.Ruby metaprogramming: доступ к названию класса
Так, например, если у меня был этот код:
class Example
make_dup :name, :value
attr_accessor :name, :value
def initialize(name,value)
@name, @value = name, value
end
end
Я хочу, чтобы это создать метод:
def dup
Example.new(name,value)
end
Я просто застрять на том, как было бы выяснить, вставить Example
.
Я не понимаю, что вы подразумеваете под созданием метода 'dup' для класса, учитывая, что он наследует' Class # dup'. Что касается получения объекта класса, 'self' равно' Example', как только «class Example» анализируется. Вы можете проверить это с помощью 'puts'. –
Вы ответили на мои вопросы. Благодарю. –