--- trunk/lib/Frey/ClassBrowser.pm 2008/07/13 18:51:29 119 +++ trunk/lib/Frey/ClassBrowser.pm 2008/09/13 15:31:54 187 @@ -1,34 +1,40 @@ package Frey::ClassBrowser; use Moose; +extends 'Frey'; with 'Frey::Web'; use Frey::ClassLoader; our $markup; -sub html_markup { - my $self = shift; +sub markup { return $markup if $markup; my $f = Frey::ClassLoader->new; - my $classes = dom2html( - table => [ - map { - my $package = $_; - ( tr => [ - td => [ a => { href => '/~/' . $package, title => $f->package_path( $package ) } => [ $package ] ], - td => [ - $package->can('meta') ? - $package->meta->isa('Moose::Meta::Role') ? 'role' : - ( a => { href => '/od/' . $package } => [ 'design' ] ) : - '' - ], - td => [ $package->can('collection_table') ? ( a => { href => '/ob/' . $package } => [ 'collection' ] ) : '' ], - ] ) - } $f->classes - ], - ); - $markup = $classes; + my $html; + foreach my $package ( $f->classes ) { + $html .= qq|$package|; + if ( $package->can('meta') ) { + if ( $package->meta->isa('Moose::Meta::Role') ) { + $html .= qq|role|; + } else { + $html .= qq|design| if $package->can('collection'); + } + } + my @inspect; + push @inspect, qq|collection| if $package->can('collection_table'); + push @inspect, qq|markup| if $package->can('markup'); + push @inspect, qq|html| if $package->can('html'); + $html .= qq|| . join(' ', @inspect) . qq||; + } + $html = "$html
" if $html; + $markup = $html; +} + +sub html { + my ( $self, $req ) = @_; + my $html = $self->page( body => qq|

Classes

| . $self->markup ); + $req->print( $html ); } 1;