rigor-dry-schema
dry-schemaの宣言を認識し、スキーマごとの型付きキーテーブルをクロスプラグインのファクト(fact、:dry_schema_table)として公開します。rigor-dry-validationはこれを消費して型付きペイロードを合成します。rigor-dry-typesと同様、これは基盤プラグインです。独自のdiagnosticは持たず、configキーもありません。
rigortypeにバンドルされて配布されます。有効化するには次のようにします(述語の引数内のTypes::*エイリアスを解決するにはrigor-dry-typesと組み合わせます)。
plugins: - rigor-dry-types # optional: resolves Types::Email etc. - rigor-dry-schema認識する対象
Section titled “認識する対象”NewUserSchema = Dry::Schema.Params do required(:email).filled(:string) required(:age).value(:integer) required(:tags).each(:string) optional(:nickname).maybe(:string)endrequired/optionalキー。述語の型シンボルはRubyのクラスにマッピングされます(:string→String、:integer→Integer、:decimal→BigDecimal、:bool→TrueClass、…)。each(:T)はそのキーをリストとしてマークします(list: true)。filled/value/maybeはスカラーです(list: false)。value(Types::Email)はrigor-dry-typesがロードされているとき:dry_type_aliasesファクトを通じて解決されます。それがない場合(または未知の参照の場合)は、下流の消費者を誤らせるよりも、その行をテーブルから外します。- トップレベル(
Foo = Dry::Schema.Params { … })およびクラスレベル(class Bar; SCHEMA = …; end→"Bar::SCHEMA")の宣言。.Params/.JSON/.defineのいずれにも対応します。
diagnosticもconfigもなし
Section titled “diagnosticもconfigもなし”このプラグインは、他のプラグインが消費するためのスキーマテーブルを公開するだけです。diagnosticは一切表面化させず、configキーも受け付けません。(将来のスライス(slice)でdry-schema.unknown-predicate / unknown-type info diagnosticと型付きresult.to_h合成が追加されます。)
プラグインの内部構造
Section titled “プラグインの内部構造”prepare(services)のスキャン、公開される:dry_schema_tableのシェイプ(shape)、そしてスライスのfloor/ceilingについてはプラグインのREADMEに記載されています。プラグインを書くにはexamples/とrigor-plugin-authorスキルを参照してください。
© 2026 TypedDuck. Licensed under CC BY-SA 4.0.