--- trunk/lib/Frey/ClassLoader.pm 2008/11/05 19:13:01 308 +++ trunk/lib/Frey/ClassLoader.pm 2008/11/17 19:21:06 382 @@ -17,6 +17,8 @@ =head2 classes +Return all local classes by reading from disk + my @classes = $o->classes; =cut @@ -40,6 +42,8 @@ =head2 class_path +Return any local or loaded class + $path = $o->class_path( $class ); =cut @@ -47,7 +51,14 @@ sub class_path { my ( $self, $class ) = @_; $self->classes unless $class_path; - confess "can't find path for class $class" unless defined $class_path->{$class}; + if ( ! defined $class_path->{$class} ) { + my $path = $class; + $path =~ s{::}{/}g; + $path .= '.pm'; + $path = $INC{$path}; + warn "# $class from INC $path"; + $class_path->{$class} = $path; + } return $class_path->{$class}; } @@ -89,7 +100,7 @@ $is_role = 1; $instance = Moose::Meta::Class->create_anon_class; $class->meta->apply( $instance ); - $meta = $instance->meta; + $meta = $class->meta; die $@ if $@; } else { $meta = $class->meta; @@ -103,12 +114,12 @@ Class::MOP::load_class($class) if ! $loaded_class->{$class}++; }; warn $@ if $@; # && $@ !~ m/role/; - warn "# load_class $class" if $loaded_class->{$class} == 1; + warn "# load_class $class" if $self->debug && $loaded_class->{$class} == 1; } sub load_all_classes { my $self = shift; - warn "# loaded_class = ",dump( $loaded_class ); + warn "# loaded_class = ",dump( $loaded_class ) if $self->debug; $self->load_class( $_ ) foreach ( $self->classes ); $loaded_class; }