タグ

validationに関するissmのブックマーク (9)

  • にひりずむ::しんぷる - Just idea - Data::Validator::Recursive

    I want to validate nested data structures. But It's not easy in Data::Validator (or Mouse::Type::Constraints). So, I made the Data::Validator::Recursive (https://github.com/xaicron/p5-Data-Validator-Recursive). my $rule = Data::Validator::Recursive->new( foo => { isa => 'Str' }, bar => { isa => 'HashRef', # default rule => { hoge => { isa => 'Str' }, fuga => { isa => 'Int' }, }, }, ); # default is

  • ゆーすけべー日記

    ユーザーからのPOST等された入力値の妥当性をチェックする Validation をどこでやるか問題が個人的にありまして〜、DBを使わないケースならばいわゆるFomrValidator::*を使ってControllerでやればいいのですが、Modelを経由するようなアプリだとControllerだけじゃ不安よねぇ〜、Modelだけ使う時もあるし、Model単体のテストで再現出来ないよね〜なんて思ってます。で、実際の実装をControllerではFormValidator::Lite、Modelの一部にData::Validatorを使っているのですが、なんかコレも効率悪い感じしてたんで、ちょいと実験的に理想の一つを実装してみました。 こんな条件です。 エラーメッセージを簡単に設定したいのでValidationモジュールにはFormValidator::Liteを使う 色々錯誤していたらOR

    ゆーすけべー日記
    issm
    issm 2013/07/24
    Controller, Model ともに Data::Validator で試行中. / 本題から外れる&重箱の隅だけど,__PACKAGE__->meta->make_immutable() 自体が 1 を返してくれます.
  • Re: バリデーションはどの位置で必要か - Islands in the byte stream (legacy)

    バリデーションはどの位置で必要か - サンプルコードによるPerl入門 バリデーションはアクセサメソッドの内部で行うのではなく、バリデーションの専用のモジュールを使用して、データを受け取った入り口で行うのがよいでしょう。 私はこれには反対です。アプリケーションにせよライブラリにせよ、原則としてすべての公開APIの入力値はバリデーションするのが望ましいと考えます。 すなわち、アクセサメソッドもそれがパブリックなAPIであればバリデーションをしたほうがいいと思います。 とはいえ以下の基的な考え方に異論があるわけではありません。 データのバリデーションを行う主要な目的は、外部から入力されるデータが正しい値かどうかをチェックするためのものです。 問題は、どこまでを「外部からの入力」とみなすかということでしょう。私は、そのプログラム/ライブラリのパブリックなAPIが受け取る値はすべて「外部からの入

    Re: バリデーションはどの位置で必要か - Islands in the byte stream (legacy)
  • Amon2::Plugin::Web::ValidatorというPluginを書いた - のらねこの気まま暮らし

    ソースは以下。まだ全然書き途中 https://github.com/rymizuki/p5-Amon2-Plugin-Web-Validator 長めの前置き 以前からポツポツとリクエストのValidation系のModuleがどうにも肌に合わず、去年の秋ごろにData::Validatorを弄る感じで自作Moduleを使っていた。 別にあれがダメこれがだめで、というよりは社内で使うのにいろいろ制約があったことと、どうも冗長に感じること、Data::Validatorをメソッドのバリデーションに使っているのにリクエストはRuleの書式が違うことなど、どうにもまとまりがなかった。 受け付けるデータのチェックを行うのであれば、ModelもContollerも同じフォーマットであるにこしたことはないし、Mouse::Typesとか型チェック系のModuleも使っているのだから、ある程度ルールも

    Amon2::Plugin::Web::ValidatorというPluginを書いた - のらねこの気まま暮らし
  • Data::Validatorの凝った使い方 - Islands in the byte stream (legacy)

    https://github.com/gfx/p5-Data-Validatorが大体できたのでリリースしました。 基的には名前で引数を指定する関数向けですが、メソッド用に対応したりリストスタイルで引数を指定したりする拡張機能もあります。 まず、$validator->with('Method') でメソッド用になります。ただし、第一引数の型はいまのところ指定できません: use feature 'state'; use Data::Validator; sub Foo::add { state $rule = Data::Validator->new( a => 'Int', b => 'Int', )->with('Method'); my($self, $args) = $rule->validate(@_); return $args->{a} + $args->{b}; } p

    Data::Validatorの凝った使い方 - Islands in the byte stream (legacy)
  • Idea of Data::Validator - Islands in the byte stream (legacy)

    Smart::Argsは無駄がなくて使いやすいのですが、欠点はXSモジュール(PadWalker)への依存があることと、Perlの作法を完全に無視していることです。 そこで、試みにData::Validatorというモジュールを書いてみました。 https://github.com/gfx/p5-Data-Validator コンセプトは以下の通り: 機能的にはSmart::Args + X Pure Perlでも動く Perlの作法に則る 十分に速い 使い方は以下の通り #!perl -w use 5.010_00; use strict; use Data::Validator; sub request { state $rule = Data::Validator->new( url => { isa => 'Str', xor => [qw(schema host path_que

    Idea of Data::Validator - Islands in the byte stream (legacy)
  • Data::Validatorでバリデーションする - Articles Advent Calendar 2010 Casual

    はじめまして!@hisaichi5518です。就活生です。誰か雇ってください。 Text::Xatenaについて書こうと思っていたんですが、もうText::Xatenaの記事が他のトラックにあるので、今日はgfxさんによってリリースされたData::Validatorを紹介しようと思います。 Data::Validator とは 実行時型チェック / パラメーターチェックが出来る便利なモジュールです。 現在、Params::Validateがデファクトスタンダードっぽいんですが、速度が遅かったりするので正直微妙です。 ベンチマーク p5-Data-Validator/benchmark/simple.pl Params::Validate/0.95 Smart::Args/0.06 Data::Validator/0.06 without type constraints Rate P::

    Data::Validatorでバリデーションする - Articles Advent Calendar 2010 Casual
  • 引数の明示という観点からのPerlモジュール群 | hirobanex.net

    Perlモジュールのバリデーターと呼ばれるジャンルのモジュールなどをバリデーションという観点ではなく、引数を明示するという観点から整理しました。 バリデーターの種類 バリデーターというものは、一般的に引数が期待される型など(整数か、文字列か、URLか、メアドか等)になっているかどうかをチェックするというものです。特に、Webアプリにおけるフォームから入力されるデータのチェックに活用されることが多いです。そういういった意味から、Perlのバリデーターモジュールはフォーム系と非フォーム系に分類することができます。 フォーム系のバリデーター等 FormValidator::Lite CPANにも紹介されている強力なフォームバリデーターです。フォームバリデーターとしては、フォームの型の定義、チェック、エラーメッセージの定義、が必要ですが、やりたいであろうことのだいたいがそろっているモジュールで実

  • フォームの入力エラーを吹き出しで教えてくれる JavaScript

    ■ フォームの入力エラーを吹き出しで教えてくれる JavaScript フォームの validation 関連のライブラリはいくつかありますが、私は以下に紹介するやつをずっと使ってまして、これがかなり気に入ってます。ただ、オレナイズされたコードが随所に含まれていたから紹介する事が出来ないでいたのですが、今回やっと書き直したのでお目見えです。 AJAX を使ってサーバサイドと連携、とかそういう事も全くやってなくて、普通に JavaScript のみで入力のチェックをしてるだけなんで、真新しい事はないんですが。 実際の動作サンプル とりあえず submit ボタンを押せば、全て理解出来るかと思います。 今回は CSS のファイルと画像のファイルといっぱい出来てきてしまっていて、いつもの「読み込ませるだけ」とはちょっと毛色も違い、使うのには事前の準備が必要で面倒です。 いつもの JavaScri

  • 1