つくりました。まだ荒削りですが、かなりべんりです。
モデルに定義されたバリデーションから適切な入力制約の属性値をもつフォームコントロールをつくれます。
ActiveModelというActiveSupportなんかとうまく連携できるようなモデルのインターフェースを提供するライブラリがあって、ActiveRecordをはじめとしてMongoMapperやMongoidなんかはそのまま動くはずです。
PadrinoのヘルパのひとつにFormBuilderというのがあって、これはRailsにもある、モデルからいいかんじにフォームコントロールをつくるヘルパ群となっています。実装はあっさりとしていて、form_for
にオブジェクトを渡して、そこからコールバックから帰ってきたエラーメッセージとかカラム名とか引っ張っているわけですね。
ActiveModelをつかっているライブラリでは統一されたインターフェースでバリデーションの情報が引けるので、FormBuilder内からアクセスしてそのままHTMLの属性として追加してあげているわけです。
id:antipopさんのHTML::ValidationRulesがめちゃんこべんりそうだったのですが、HTMLをパースする実装になっていたのでHamlみたいなのが流行っているRubyではそのまんま移植するのは骨が折れそうだったので、既にActiveModelというインターフェース (まだ新鋭ですが) があったので、これでバリデーションのルールを記述し、それをクライアントサイドでも使い回そう、という発想に至り実装しました。
register
するだけで設定は不要です。設定できないとも言います。バリデーションルールの上書きはできますが、バリデーションルールを追加しない、というのは (おそらく) できません。そういう設定・パラメータがあってもよい気はしますが、取り急ぎ未対応のバリデーションに対応させるのが先決になりそうです。
pull requestなどなどお待ちしております。