Changeset 13211

Show
Ignore:
Timestamp:
06/04/08 16:45:24 (5 years ago)
Author:
daisuke
Message:

more coersion control

Location:
lang/perl/XMPP-Bomber/trunk/lib/XMPP/Bomber
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/XMPP-Bomber/trunk/lib/XMPP/Bomber/Role/Client.pm

    r13207 r13211  
    1515    is => 'rw', 
    1616    isa => 'XMPP::Bomber::Server', 
     17    coerce => 1, 
    1718    required => 1, 
    1819); 
     
    2223    isa => 'AccountList', 
    2324    auto_deref => 1, 
     25    coerce => 1, 
    2426    required => 1, 
    2527); 
     
    3840has 'content_provider' => ( 
    3941    is => 'rw', 
    40     does => 'XMPP::Bomber::Role::ContentProvider' 
     42    does => 'XMPP::Bomber::Role::ContentProvider', 
     43    coerce => 1, 
    4144); 
    4245 
    4346has 'recipient_chooser' => ( 
    4447    is => 'rw', 
    45     does => 'XMPP::Bomber::Role::RecipientChooser' 
     48    does => 'XMPP::Bomber::Role::RecipientChooser', 
     49    coerce => 1, 
    4650); 
    4751 
  • lang/perl/XMPP-Bomber/trunk/lib/XMPP/Bomber/Types.pm

    r13209 r13211  
    55use XMPP::Bomber::Server; 
    66use XMPP::Bomber::Role::ContentProvider; 
     7use XMPP::Bomber::Role::Client; 
    78use XMPP::Bomber::Role::UserProvider; 
     9 
     10subtype 'ClientList' 
     11    => as 'ArrayRef[XMPP::Bomber::Role::Client]' 
     12; 
     13 
     14coerce 'ClientList' 
     15    => from  'ArrayRef[HashRef]' 
     16        => via { 
     17            my @ret; 
     18            foreach my $args (@$_) { 
     19                push @ret, __auto_object_from_hash($args, "XMPP::Bomber::Client"); 
     20            } 
     21            return \@ret; 
     22        } 
     23; 
    824 
    925subtype 'AccountList' 
     
    2541    => from 'HashRef'  
    2642        => via { 
    27             __module_from_hash($_, "XMPP::Bomber::ContentProvider"); 
     43            __auto_object_from_hash($_, "XMPP::Bomber::ContentProvider"); 
    2844        } 
    2945;