/[Frey]/trunk/lib/Frey/ClassLoader.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Frey/ClassLoader.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 582 by dpavlin, Fri Nov 28 13:18:18 2008 UTC revision 590 by dpavlin, Fri Nov 28 16:35:59 2008 UTC
# Line 212  It is used by L<Frey::Run> and L<Frey::P Line 212  It is used by L<Frey::Run> and L<Frey::P
212    
213  sub new_frey_class {  sub new_frey_class {
214          my ( $self, $class, $params ) = @_;          my ( $self, $class, $params ) = @_;
215          my $instance = $class->new( %$params );          my $instance;
216            
217            if ( $class->meta->isa('Moose::Meta::Role') ) {
218                    $instance = Frey->new;
219                    Frey::Web->meta->apply( $instance );
220                    warn "new_frey_class $class role with Frey::Web";
221            } else {
222                    $instance = $class->new( %$params ) or confess "can't $class->new".dump( %$params );
223                    warn "new_frey_class $class";
224            }
225    
226          if ( $instance->can('data') && ! $instance->can('as_data') ) {          if ( $instance->can('data') && ! $instance->can('as_data') ) {
227                  Frey::Role::as_data->meta->apply( $instance );                  Frey::Role::as_data->meta->apply( $instance );
228                  $self->TODO("apply as_data role to $class");                  warn "# apply as_data role to $class";
229          }          }
230          if ( $instance->can('sponge') && ! $instance->can('as_sponge') ) {          if ( $instance->can('sponge') && ! $instance->can('as_sponge') ) {
231                  Frey::Role::as_sponge->meta->apply( $instance );                  Frey::Role::as_sponge->meta->apply( $instance );
232                  $self->TODO("apply as_sponge role to $class");                  warn "# apply as_sponge role to $class";
233          }          }
234    
235          if ( ! $instance->can('add_status') ) {          if ( ! $instance->can('add_status') ) {
236                  Frey::Web->meta->apply( $instance );                  Frey::Web->meta->apply( $instance );
237                  $self->TODO("apply Frey::Web role to $class");                  warn "# apply Frey::Web role to $class";
238          }          }
239    
240          if ( $self->can('add_status') ) {          $self->add_status({ $class => $params });
                 $self->add_status({ $class => $params });  
         } else {  
                 warn "# class $self can't add_status";  
         }  
241          return $instance;          return $instance;
242  }  }
243    

Legend:
Removed from v.582  
changed lines
  Added in v.590

  ViewVC Help
Powered by ViewVC 1.1.26