Я хотел бы иметь возможность динамического прокси-сервера для двух уровней призрачных методов в модуле. Я предполагаю, что на первом уровне необходимо динамически создавать модуль с переменной, которая отслеживает имя моего вызова первого уровня и метод, отсутствующий, чтобы принять мой вызов второго уровня, но я не понимаю, как обратиться это в рабочий код.Metaprogramming multi-level method_missing
module Test
def self.method_missing(name, *args)
#dynamically create a module and return it
#so my 2nd level call hits its method_missing
end
end
Test::test1::test2
должны позволить мне писать прокси-сервер, который может использовать test1
, test2
и *args
.
Как я могу реализовать эту идею?
EDIT: Я решил 2-й уровень, но есть ли какая-либо методология, которая могла бы получить неограниченное количество уровней?
Что такое "метод призрак"? –
@CarySwoveland Его метод, полученный методом method_missing. –