我正在尝试为后台工人类编写 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
这有任何意义吗?希望这里有人能指出我正确的方向。