add_to_class で定義されたメソッドの引数を受け入れる

プラグインは add_to_class を使用してクラスにインスタンスメソッドを追加できます。これは以下のように定義されます:

def add_to_class(class_name, attr, &block)
  reloadable_patch do |plugin|
    klass = class_name.to_s.classify.constantize rescue class_name.to_s.constantize
    hidden_method_name = :"#{attr}_without_enable_check"
    klass.public_send(:define_method, hidden_method_name, &block)

    klass.public_send(:define_method, attr) do |*args|
      public_send(hidden_method_name, *args) if plugin.enabled?
    end
  end
end

引数を取るメソッドを定義する、このような処理を行う既存の方法はありますか?

add_to_class(Guardian, :ensure_user_can_access_report, group, report) do
  ...
end

これはお探しのもののように思えます。良い例ですね。

つまり、基本的にそれらのパラメータをラムダ自体のパラメータとして設定する必要があります。

はい、その通りです。ありがとうございます!

Ruby流に同じことをすることもできます。