Changeset 13586

Show
Ignore:
Timestamp:
06/09/08 19:05:52 (6 years ago)
Author:
tomyhero
Message:

lang/perl/FormValidator::LazyWay? : more test and remove must_be_plural

Location:
lang/perl/FormValidator-LazyWay/branches/rebuild
Files:
1 removed
5 modified
1 copied

Legend:

Unmodified
Added
Removed
  • lang/perl/FormValidator-LazyWay/branches/rebuild/lib/FormValidator/LazyWay.pm

    r13550 r13586  
    3030    my $result  = {}; 
    3131    my $storage = { 
    32         valid     => FormValidator::LazyWay::Utils::get_input_as_hash($input), 
    33         missings  => [], 
    34         overflows => [], 
    35         unknown   => [], 
    36         invalid   => {}, 
     32        valid   => FormValidator::LazyWay::Utils::get_input_as_hash($input), 
     33        missing => [], 
     34        unknown => [], 
     35        invalid => {}, 
    3736    }; 
    3837 
     
    4039 
    4140    my @subs = ( 
     41 
    4242        # profileを扱いやすい型にコンバート 
    43         sub { $self->_conv_profile(@_) } , 
     43        sub { $self->_conv_profile(@_) }, 
     44 
    4445        # デフォルトセット 
    4546        sub { $self->_set_default(@_) }, 
     47 
    4648        # 空白のフィールドのキーを消去 
    4749        sub { $self->_remove_empty_fields(@_) }, 
     50 
    4851        # 未定義のフィールドをセット、そしてvalidから消去 
    4952        sub { $self->_set_unknown(@_) }, 
     53 
    5054        # missingのフィールドをセット、そしてvalidから消去 
    5155        sub { $self->_check_required_fields(@_) }, 
    52         # 複数定義(missing,overfolows)のフィールドをセット、そしてvalidから消去 
    53         # TODO : エラーメッセージに、指定数が入るようにできた方がいいなぁ。 
    54         sub { $self->_check_must_be_plural(@_) }, 
     56 
    5557        # invalidチェックループ 
    5658        sub { $self->_validation_block(@_) }, 
     59 
    5760        # エラーメッセージセット 
    5861        sub { $self->_set_error_message(@_) }, 
     
    7780    my @fields = keys %{ $storage->{valid} }; 
    7881 
    79     for my $field ( @fields ) { 
     82    for my $field (@fields) { 
    8083        my $is_invalid = 0; 
    81         # missing , overflows , empty optional 
    82         next unless exists $storage->{valid}{$field};     
    8384 
    84     } 
     85        # missing , empty optional 
     86        next unless exists $storage->{valid}{$field}; 
    8587 
    86 } 
    87  
    88 sub _check_must_be_plural { 
    89     my $self    = shift; 
    90     my $storage = shift; 
    91     my $profile = shift; 
    92  
    93     foreach my $field ( keys %{ $profile->{must_be_plural} } ) { 
    94         if ( ref $storage->{valid}{$field} eq 'ARRAY' ) { 
    95         # TODO: missing or overflows 
    96             unless ( 
    97                 scalar @{ $storage->{valid}{$field} } 
    98                 == $profile->{must_be_plural}{$field} ) 
    99             { 
    100                 push @{ $storage->{overflows} }, $field; 
    101                 delete $storage->{valid}{$field}; 
    102             } 
    103         } 
    104         else { 
    105             push @{ $storage->{overflows} }, $field; 
    106             delete $storage->{valid}{$field}; 
    107         } 
    10888    } 
    10989 
     
    11696 
    11797    for my $field ( keys %{ $profile->{required} } ) { 
    118         push @{ $storage->{missings} }, $field 
     98        push @{ $storage->{missing} }, $field 
    11999            unless exists $storage->{valid}{$field}; 
    120100        delete $storage->{valid}{$field} 
     
    125105 
    126106sub _conv_profile { 
    127     my $self    = shift; 
    128     my $storage = shift; 
    129     my $profile = shift; 
     107    my $self        = shift; 
     108    my $storage     = shift; 
     109    my $profile     = shift; 
    130110    my %new_profile = (); 
    131     %{$new_profile{required}} = map { $_ => 1 } 
     111    %{ $new_profile{required} } = map { $_ => 1 } 
    132112        FormValidator::LazyWay::Utils::arrayify( $profile->{required} ); 
    133     %{$new_profile{optional}} = map { $_ => 1 } 
     113    %{ $new_profile{optional} } = map { $_ => 1 } 
    134114        FormValidator::LazyWay::Utils::arrayify( $profile->{optional} ); 
    135     %{$new_profile{may_be_plural}} 
    136         = map { $_ => 1 }  
    137         FormValidator::LazyWay::Utils::arrayify( $profile->{may_be_plural} ); 
    138     %{$new_profile{must_be_plural}} 
    139         = map { $_ => 1 }  
    140         FormValidator::LazyWay::Utils::arrayify( $profile->{must_be_plural} ); 
    141     %{$profile} = ( %{$profile}, %new_profile ) ; 
     115    %{ $new_profile{want_array} } = map { $_ => 1 } 
     116        FormValidator::LazyWay::Utils::arrayify( $profile->{want_array} ); 
     117    %{$profile} = ( %{$profile}, %new_profile ); 
    142118} 
    143119 
     
    147123    my $profile = shift; 
    148124 
    149     @{ $storage->{unknown} }  
    150         = grep { 
    151             not(   exists $profile->{optional}{$_} or exists $profile->{required}{$_} ) 
    152           } keys %{ $storage->{valid} }; 
     125    @{ $storage->{unknown} } = grep { 
     126        not(   exists $profile->{optional}{$_} 
     127            or exists $profile->{required}{$_} ) 
     128    } keys %{ $storage->{valid} }; 
    153129 
    154130    # and remove them from the list 
     
    156132        delete $storage->{valid}{$field}; 
    157133    } 
    158  
    159134 
    160135} 
  • lang/perl/FormValidator-LazyWay/branches/rebuild/lib/FormValidator/LazyWay/Utils.pm

    r13411 r13586  
    2020                required 
    2121                defaults 
    22                 may_be_plural 
    23                 must_be_plural 
     22                want_array 
    2423                lang 
    2524                / 
  • lang/perl/FormValidator-LazyWay/branches/rebuild/t/lazyway-check-conv-profile.t

    r13550 r13586  
    11use Test::Base; 
     2use FormValidator::LazyWay; 
     3use FindBin; 
     4use File::Spec; 
     5use lib File::Spec->catfile( $FindBin::Bin, 'lib' ); 
    26 
    37plan tests => 1 * blocks; 
     
    59run { 
    610    my $block = shift; 
    7     ok(0, 'please write test'); 
     11    my $profile = $block->profile; 
     12    FormValidator::LazyWay->_conv_profile( undef , $profile ); 
     13    is_deeply( $profile , $block->result ); 
    814} 
    915 
    1016__END__ 
    1117=== normal 
     18--- profile eval 
     19{ 
     20    required => [qw/foo bar/], 
     21    optional => [qw/foo bar hoge/], 
     22    want_array => [qw/oppai/], 
     23} 
     24--- result eval 
     25{ 
     26    required => { 
     27        foo => 1, 
     28        bar => 1, 
     29    }, 
     30    optional => { 
     31        foo => 1, 
     32        bar => 1, 
     33        hoge => 1, 
     34    }, 
     35    want_array => { 
     36        oppai => 1, 
     37    }, 
     38}  
  • lang/perl/FormValidator-LazyWay/branches/rebuild/t/lazyway-check-remove-empty-fields.t

    r13428 r13586  
    1414    is_deeply( $storage , $block->result ); 
    1515} 
    16  
    1716__END__ 
    1817=== set default 
  • lang/perl/FormValidator-LazyWay/branches/rebuild/t/lazyway-check-required-fields.t

    r13550 r13586  
    11use Test::Base; 
     2use FormValidator::LazyWay; 
     3use FindBin; 
     4use File::Spec; 
     5use lib File::Spec->catfile( $FindBin::Bin, 'lib' ); 
    26 
    37plan tests => 1 * blocks; 
     
    59run { 
    610    my $block = shift; 
    7     ok(0, 'please write test'); 
     11    my $storage = $block->storage; 
     12    my $profile = $block->profile; 
     13    FormValidator::LazyWay->_conv_profile( $storage , $profile ); 
     14    FormValidator::LazyWay->_check_required_fields( $storage , $profile ); 
     15    is_deeply( $storage , $block->result ); 
    816} 
    917 
    1018__END__ 
    1119=== normal 
     20--- profile eval 
     21{ 
     22    required => [qw/foo bar/], 
     23} 
     24--- storage eval 
     25{ 
     26    valid    => { 
     27        foo =>'hoge', 
     28        moo =>'hoge', 
     29    }, 
     30    missing => [], 
     31} 
     32--- result eval 
     33{ 
     34    valid => {  
     35        foo =>'hoge', 
     36        moo => 'hoge', 
     37    }, 
     38    missing => [ 
     39        'bar', 
     40    ], 
     41}  
  • lang/perl/FormValidator-LazyWay/branches/rebuild/t/utils-check-profile-syntax.t

    r13409 r13586  
    66 
    77ok( FormValidator::LazyWay::Utils::check_profile_syntax( 
    8         {   constraints    => [], 
    9             optional       => [], 
    10             required       => [], 
    11             defaults       => [], 
    12             may_be_plural  => [], 
    13             must_be_plural => [], 
    14             lang           => [], 
    15             use_loose      => [], 
    16             use_foo        => [], 
     8        {   constraints => [], 
     9            optional    => [], 
     10            required    => [], 
     11            defaults    => [], 
     12            want_array  => [], 
     13            lang        => [], 
     14            use_loose   => [], 
     15            use_foo     => [], 
    1716        } 
    1817    )