バックグラウンドワーカークラス用の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
それは意味がありますか?ここの誰かが私を正しい方向に向けることができることを願っています。