--- trunk/lib/Frey/ClassLoader.pm 2008/11/28 13:27:34 586 +++ trunk/lib/Frey/ClassLoader.pm 2008/11/28 16:35:59 590 @@ -212,7 +212,17 @@ sub new_frey_class { my ( $self, $class, $params ) = @_; - my $instance = $class->new( %$params ); + my $instance; + + if ( $class->meta->isa('Moose::Meta::Role') ) { + $instance = Frey->new; + Frey::Web->meta->apply( $instance ); + warn "new_frey_class $class role with Frey::Web"; + } else { + $instance = $class->new( %$params ) or confess "can't $class->new".dump( %$params ); + warn "new_frey_class $class"; + } + if ( $instance->can('data') && ! $instance->can('as_data') ) { Frey::Role::as_data->meta->apply( $instance ); warn "# apply as_data role to $class";