• このエントリーをはてなブックマークに追加

メモ

こちらのエントリのその後,最近になって次のような変更を加えました:

  • $c->validator() で呼べるようにした

    • $c->new_validator() とかするのがちょっとアレになってきたので
  • $v->validate() に,リクエストオブジェクト(is-a Plack::Request)を直接渡せるようにした

    • HashRef を渡すために毎度 $req->parameters->mixed するのがメンドイので
  • 内部的なバリデータクラスの名前を Data::Validator::Amon2 に変更した

    • Data::Validator::Filterable という名前がちょっとアレになってきたので
    • Plack::Request オブジェクトを直接受けることから,Data::Validator::Amon2::Web みたいの方がよいのかもしれない

サンプルコード

package MyApp::C::Root;
use strict;
use warnings;
use MouseX::Types::Mouse qw/Bool Str/;
 
sub index {
    my ($class, $c) = @_;
    my ($req, $res) = ( $c->req );
 
    ### $c->validator() で呼べるように
    my $v = $c->validator(
        foo => { isa => Str },
        bar => { isa => Bool },
    )->with('NoThrow');
 
    ### $req を直接渡せるように
    my $q = $v->valide( $req );
 
    if ( $v->has_errors ) {
        ...
    }
 
    ...
}
 
...

GitHub

まぁ修正自体は 1週間ほど前ですが.