Practice of Programming

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

Catayst::Plugin::FormValidator::Simple::Autoのパッチ

重複して、プロファイルを書くのは辛いので、書いてみたけど、ダサいかな。
上書きとか出来るようにしておいたほうが良い気がするので、もうちょっとなんとかするかも。

--- /usr/local/share/perl/5.8.4/Catalyst/Plugin/FormValidator/Simple/Auto.pm.back       2007-10-22 10:38:21.000000000 +0900
+++ /usr/local/share/perl/5.8.4/Catalyst/Plugin/FormValidator/Simple/Auto.pm    2007-10-22 10:46:04.000000000 +0900
@@ -141,9 +141,16 @@
 
     my $messages;
     my $profiles = $config->{profiles};
+
+    my $default_validation = $profiles->{DEFAULT};
+
     for my $action ( keys %{ $profiles || {} } ) {
         my $profile = $profiles->{$action} || {};
 
+        if(my $use_default = delete $profile->{_USE_DEFAULT_}){
+          $profile->{$_} = $default_validation->{$_} foreach @$use_default
+        }
+
         for my $param ( keys %$profile ) {
             my $rules = $profile->{$param} || [];

YAMLはこういうの。

edit:
   _USE_DEFAULT_:
     - bookmark_id
DEFAULT:
   bookmark_id:
     - rule: NOT_BLANK
       message: bookmark_id is required
     - rule: INT
       message: bookmark_id must be integer