コンテンツにスキップ

rigor-activejob

Job.perform_later(...).perform_now(...).perform(...)の引数のアリティ(arity)を、発見した#perform定義に対して検証します。Railsのランタイム依存はありません ── このプラグインはPrism経由でプロジェクトのソースを読むだけです。

このプラグインはrigortypeにバンドルされて提供されます。plugins:の下で有効化します:

plugins:
- rigor-activejob

#performが必須引数1個と任意引数1個(アリティ1..2)を取るジョブがある場合:

demo.rb:6:1: info: `WelcomeEmailJob.perform_later` matches `#perform` (arity 1..2)
demo.rb:9:1: error: `WelcomeEmailJob.perform_later` expects 1..2 argument(s), got 0
demo.rb:12:1: error: `WelcomeEmailJob.perform_later` expects 1..2 argument(s), got 3

*restパラメータは上限のないアリティ(arity 0+)を生み出します。3つのエントリーポイントすべて ── perform_later(非同期)、perform_now(同期)、裸のperform ── は、同じ#performのエンベロープに対して検証されます。

plugins:
- gem: rigor-activejob
config:
job_search_paths: ["app/jobs"] # default
job_base_classes: ["ApplicationJob", "ActiveJob::Base"] # default
  • 直接のスーパークラスのみマッチBaseJob < ApplicationJobである状況下でのclass WelcomeJob < BaseJobは、BaseJobjob_base_classesに追加しない限り発見されません。
  • 構文上のアリティ#performのアリティはパラメータリストから読み取られます。define_methodで構築された#performは対象外です。
  • 位置アリティのみ。必須のキーワード引数は発見器によって記録されますが、呼び出し箇所ではまだ検証されません。

ジョブの発見器/インデックス、キャッシュされた:job_indexプロデューサー、デモ、そしてこのプラグインが行使する契約(contract)サーフェスは、プラグインのREADMEにあります。プラグインを書くには、examples/rigor-plugin-authorスキルを参照してください。

© 2026 TypedDuck. Licensed under CC BY-SA 4.0.