我希望能够在模块中使用两级ghost方法的动态代理。我假设第一级需要动态创建一个带有变量的模块,该变量跟踪我的第一级调用的名称,以及一个接受我的第二级调用的方法,但是我对如何转向感到茫然这就是工作代码。
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
的代理。
我如何实现这个想法?
编辑:我解决了第二级但有没有任何方法可以让我获得无限数量的级别?答案 0 :(得分:0)
我明白了:
module Test
def self.method_missing(name, *args)
m = Module.new
m.instance_variable_set("@name", name)
def m.method_missing(name1, *args)
puts @name
puts name1
end
m
end
end
Test::test1::test2
#Output:
# test1
# test2