2
我正在尝试为后台工作者类编写一个DSL,并且我试图完成一些工作。在Ruby中编写一个DSL方法,它将创建一个带参数的方法
理想情况下,我应该能够编写工作的工人像下面...
job :job_name do |param1, param2|
puts param1
end
现在,在我的工人超一流的,我在做这样的事情...
class Worker
def self.job(job_name, &block)
define_method job_name do
# stuck
end
# do some additional stuff here
end
end
我想做的就是定义访问原作业调用中使用的块参数的方法,这样我就可以启动此工作了与:
Worker.new.job_name(param1, param2)
创建应在功能上等同的方法:
def job_name(param1, param2)
puts param1
end
这有任何意义吗?希望这里的某个人能指引我正确的方向。
你打败了我。很好的答案。 +1 – Kyle 2012-08-14 20:06:03
像梦一样工作。我越来越近了。 :) – jmcnevin 2012-08-14 20:28:03