2007年7月4日

YAML 1.0

FormValidator::Simple::ProfileManager::YAML に読み込ませるため、profile.yml を書いていて、Validator で、DATE チェックをさせる時、On Coding なら以下のように書くのだが、、YAML で書く場合に、どう書いたらいいのか分からず、、ずっと試行錯誤を繰り返し、、2、3時間ハマって、やっと出来たので、忘れないように残しておく。
On Coding の場合
use FormValidator::Simple;

my $result = FormValidator::Simple->check( $query => [
param1 => ['NOT_BLANK', 'ASCII', ['LENGTH', 2, 5]],
{ date => ['year', 'month', 'day'] } => ['DATE'],
]);
っと書けばいいのだが、これを YAML で、しかも、ハッシュの状態のまま持たせるには、どうしたらいいのか!?ちなみに、普通はリストで以下のように書く
---
- param1
- [ NOT_BLANK, ASCII, [ LENGTH, 2, 5 ] ]
- date: [ year, month, day ]
- [ DATE ]
っんで、これをハッシュと同じように持たせるには、以下のようにしたら上手くいった
---
param1 : [ NOT_BLANK, ASCII, [ LENGTH, 2, 5 ] ]
? date: [ year, month, day ]
: [ DATE ]
ちなみに、この特殊な書き方をすると、Alias が付けられなかった、、(ただの文字列扱いにされた)
参考:YAML Ain't Markup Language (YAML™) 1.0

っで、最悪な事に、このエントリーを書いていて、それって、自分が作りたい DataObject を、Perl で書いてから、それを、YAML::Dumper で、吐き出せばいいんじゃねっとか思った。。。orz -> 自爆メソッド

ちゃんと YAML を習得しなくてわ、、、

追記:上手くいってませんでした、、、申し訳ないです、、、ただの文字列として判定されていました、、。申し訳ないです。。。m(___)m

0 件のコメント: