zshrc始めました。


とりあえず、この設定を覚えようと思う。

# 補完を利用する設定です。これを設定しないと補完関連は使えないです。
autoload -U compinit; compinit
# cd -<tab>で補完一覧がでます。 
setopt auto_pushd 

でね、これってさ、cd - で履歴がでるっていう優れもの。


でもね、僕すぐ忘れるんだよね。で、いつの間にか使わなくなってしまってるみたいな。

でね、PROMPTも覚えた。こういう設定にした。

RPROMPT='cd -'

そうすると右側に、毎回 cd - と表示されます。これで、癖になるまで、すぐ思い出せるね。

早く癖になると言いな。

検証モジュール Data-FormValidateEm(仮名)

Data-FormValidateEm
てのを作ってる。前にもいったかも。それなりに動くようになったので、ちょっとメモっとく。

特徴

  • フォームごとではなく、アプリ単位でConstraints設定をおこなう
  • 検証プラグイン追加ができる実装
  • メッセージ周りがすげー怠けれる
  • DFVをまねてる
  • 同じフィールド名で複数の値を受け付けたい場合、may_be_plural,must_be_pluralを使う。

今回はメッセージ周りがどれだけ怠けれるかを紹介する


実装的に、Pluginには既に検証メッセージが格納されている。

package Data::FormValidateEm::Plugin::String;

use strict;
use warnings;

sub dfv_length {
    my $text = shift;
    my $args = shift;

    die 'you must set max argument' unless exists $args->{max};
    die 'you must set min argument' unless exists $args->{min};

    return ( length $text > $args->{max} or length $text < $args->{min} ) ? 0 : 1;
}

sub mes_length {
    { 
        ja => '$_[min]文字以上$_[max]文字以下',
    }
}

sub dfv_ASCII {
 # code..
}

sub mes_ASCII {
    { 
        ja => 'ASCII文字',
    }
}

以下の設定では、 title は、上記のString::lengthと,ASCIIの検証に通るひつようがある設定になっている。
この設定でたとえば、「ヴ」とタイトルに入力して、両方の検証にマッチしなかったとする。

constraints :
    strict :
         title :
            - String::length :
                args :
                    max : 50
                    min : 10
            - String::ASCII
labels :
    ja :
        title : 題名

そうすると、以下のエラーメッセージが自動で作成される。メッセージ内に引数の値が使用できるのがDRYなところ。

題名には10文字以上50文字以下,ASCII文字が使用できます。

この部分で、検証内容を文章にしてる。

package Data::FormValidateEm::Plugin;

use strict;
use warnings;

sub mes_invalid {
    {
        ja => '__field__には__rule__が使用できます。',

    }
}

1;

フィードバックその他貰えるとよろこびます。
共同開発してくれる方も全裸で募集中です。

コメント、若しくはtomohiro.teranishi@gmail.com 、若しくは irc.lazy-people.org#dfv までご連絡を!