--- trunk/lib/Frey/Introspect.pm 2008/07/05 16:50:17 54 +++ trunk/lib/Frey/Introspect.pm 2008/07/08 12:19:04 59 @@ -11,6 +11,7 @@ use List::Util; use Continuity::Widget::DomNode; +use lib 'lib'; extends 'Frey'; @@ -45,8 +46,10 @@ my @roles_to_apply; $rmeta->add_method("apply", sub{push(@roles_to_apply, [@_])}); #load the package with the hacked Moose::Meta::Role - eval { Class::MOP::load_class($package); }; - confess "Failed to load package ${package} $@" if $@; + + #eval { Class::MOP::load_class($package); }; + #confess "Failed to load package ${package} $@" if $@; + Class::MOP::load_class($package); my $meta = $package->meta; @@ -198,7 +201,16 @@ my $methods; - my ( $class, $meta, $is_role ) = $self->load_package(); + my ( $class, $meta, $is_role ); + eval { ( $class, $meta, $is_role ) = $self->load_package(); }; + if ( $@ ) { + warn "ERROR: $@"; + $request->conn->send_status_line( 500, $@ ); + $request->print( $@ ); + $request->next; + return; + } + if ( $class->can('meta') ) { $methods = Continuity::Widget::DomNode->create( ul => [ @@ -216,7 +228,7 @@ map { my $attr = $class->get_attribute($_); warn "## $_ ", $attr->is_required ? 'required' : 'optional'; - ( li => [ a => { href => '/~/' . $self->package . '/' . $_ } => [ $_, ( $attr->is_required ? ' required' : '' ) ] ] ) + ( li => [ a => { href => '/~/' . $self->package . '/' . $_ } => [ $_ ], ( $attr->is_required ? ' required' : '' ) ] ) } $class->get_attribute_list ], )->to_string;