--- trunk/lib/Frey/ClassLoader.pm 2008/11/27 21:32:36 567 +++ trunk/lib/Frey/ClassLoader.pm 2008/11/28 13:18:18 582 @@ -168,7 +168,7 @@ sub class_runnable { my ( $self, $class ) = @_; - my @methods = grep { m{^as_} } $self->class_methods( $class ); + my @methods = grep { m{^as_} || m{_as_} } $self->class_methods( $class ); return @methods if wantarray; return \@methods; } @@ -215,14 +215,23 @@ my $instance = $class->new( %$params ); if ( $instance->can('data') && ! $instance->can('as_data') ) { Frey::Role::as_data->meta->apply( $instance ); - warn "# apply as_data role to $class"; + $self->TODO("apply as_data role to $class"); } if ( $instance->can('sponge') && ! $instance->can('as_sponge') ) { Frey::Role::as_sponge->meta->apply( $instance ); - warn "# apply as_sponge role to $class"; + $self->TODO("apply as_sponge role to $class"); } - $self->add_status({ $class => $params }) if $self->can('add_status'); + if ( ! $instance->can('add_status') ) { + Frey::Web->meta->apply( $instance ); + $self->TODO("apply Frey::Web role to $class"); + } + + if ( $self->can('add_status') ) { + $self->add_status({ $class => $params }); + } else { + warn "# class $self can't add_status"; + } return $instance; }