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

change coersion a bit

Files:
1 modified

Legend:

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

    r13199 r13209  
    33 
    44use XMPP::Bomber::Account; 
     5use XMPP::Bomber::Server; 
    56use XMPP::Bomber::Role::ContentProvider; 
    67use XMPP::Bomber::Role::UserProvider; 
     
    2425    => from 'HashRef'  
    2526        => via { 
    26             my $h = $_; 
    27             my $module = __resolve_module_name($h->{module}, "XMPP::Bomber::ContentProvider"); 
    28              
    29             $module->new( %{$h->{args}} ); 
     27            __module_from_hash($_, "XMPP::Bomber::ContentProvider"); 
    3028        } 
    3129; 
     
    3432    => from 'HashRef'  
    3533        => via { 
    36             my $h = $_; 
    37             my $module = __resolve_module_name($h->{module}, "XMPP::Bomber::UserProvider"); 
    38              
    39             $module->new( %{$h->{args}} ); 
     34            __auto_object_from_hash($_, "XMPP::Bomber::UserProvider"); 
    4035        } 
    4136; 
     37 
     38coerce 'XMPP::Bomber::Server' 
     39    => from 'HashRef' 
     40        => via {  
     41            __object_from_hash($_, "XMPP::Bomber::Server"); 
     42        } 
     43; 
     44             
    4245 
    4346no Moose; 
     
    5356}; 
    5457 
     58sub __auto_object_from_hash { 
     59    my ($h, $prefix) = @_; 
     60    my $module = __resolve_module_name($h->{module}, $prefix); 
     61    __object_from_hash($h, $module); 
     62} 
     63 
     64sub __object_from_hash { 
     65    my ($h, $module) = @_; 
     66    $module->new( %{$h->{args}} ); 
     67} 
     68 
    55691;