Practice of Programming

プログラム とか Linuxとかの話題

Data::RuledValidator 0.02

Data::RuledValidator 0.02をアップしました。1時間くらいしたら反映されるかと。


今回は、Module::Pluggable を使って、plugin を作れるようにしました。
Data::RuledValidator::Plugin::* っていうモジュールを作れば、plugin として使います。
Email も最初のバージョンでは組み込んでたんですが、plugin にしました。
そのほか、number とか、word とかも、Core というpluginにしました。
日本語の扱いが、まだものすごく不十分です(ぉ


Data::RuldeValidator は、Validationのロジックをコードから分離したいために作ったものです。

 ?page=confirm

の時にするチェックをコードに書くのじゃなくて、別のものに書くというものです。

 ;;GLOBAL
 
 ID_KEY  page

 # i is User ID 
 i is number
 k is word
 v is word
 
 ;;confirm
 all of i, k, v

のようなルールを書く。コードは、下記のようにします。

 my $v = Data::RuledValidator->new(obj => CGI->new, method => "param", rule => "validator.rule");
 print $v->by_rule; # return 1 if valid

Validation をコードに書くのはめんどくさいし、Validation のロジックは、
どこかにまとまってた方が保守性が高いんじゃないかと思ったからです。
パラメータに何を使うのかって言うのを、このルールに書いておけば、
同じものを別のパラメタで使うとかいう、アホなこともないし。ちょっとした仕様書みたいなものになる。


オブジェクトと、メソッド名を渡す関係上、アクセサがあるようなオブジェクトなら、
なんでも使えるし(使う場面があるかは知らないけど)。


といったものです。しかし、まだまだ不十分。