--- trunk/lib/Frey/ClassBrowser.pm 2008/11/26 04:27:00 530
+++ trunk/lib/Frey/ClassBrowser.pm 2008/11/28 13:18:18 582
@@ -4,6 +4,7 @@
extends 'Frey::ClassLoader';
with 'Frey::Web';
with 'Frey::Session';
+with 'Frey::Web::CombineImages';
use Frey::Run;
use Data::Dump qw/dump/;
@@ -18,16 +19,27 @@
sub as_markup {
my $self = shift;
my $row;
+ my @icons;
my $usage = $self->session_dump( $self->usage );
#warn "# usage ",dump( $usage );
foreach my $class ( $self->classes ) {
- my $icon_path;
- eval { $icon_path = $self->icon_path( $class ); };
+
+ my $icon = '';
+ if ( ! $self->can('icon_path') ) {
+ $self->TODO( "re-apply Frey::Web on $self" );
+ Frey::Web->meta->apply( $self );
+ }
+ $icon = $self->icon_path( $class );
+ if ($icon) {
+ push @icons, $icon;
+ $icon = qq||;
+ } else {
+ $icon = '';
+ }
+
my $html
- = qq|
|
- . ( $icon_path ? qq| | : '?' )
- . qq| | $class | |
;
@@ -35,15 +47,17 @@
if ( $class->meta->isa('Moose::Meta::Role') ) {
$html .= qq|role|;
} else {
- $html .= qq|design| if $class->can('collection');
+ $html .= qq|design| if $class->can('collection');
}
}
my @run = map {
+ my $invoke = $_;
s{^as_}{};
- qq|$_|;
+ s{_as_\w+}{};
+ qq|$_|;
} $self->class_runnable( $class );
- push @run, qq|collection| if $class->can('collection_table');
+ push @run, qq|collection| if $class->can('collection_table');
my @inputs = $self->class_inputs( $class );
@@ -60,18 +74,24 @@
$row->{$class} = $html;
}
+ my $icons_html = $self->combine_images( @icons );
+ sub icon {
+ my ($icons_html,$path) = @_;
+ $icons_html->{ $path } || die "can't find $path in ",dump($icons_html);
+ };
+
return
qq|| . join("\n",
- map { $row->{$_} }
+ map {
+ my $html = $row->{$_};
+ $html =~ s{}{icon($icons_html,$1)}gse;
+ $html;
+ }
sort {
if ( $usage->{$a} || $usage->{$b} ) {
- if ( $self->usage_on_top ) {
- $usage->{$b} <=> $usage->{$a};
- } else {
- $usage->{$a} <=> $usage->{$b};
- }
+ $self->usage_on_top ? $usage->{$b} <=> $usage->{$a} : $usage->{$a} <=> $usage->{$b};
} else {
- $a cmp $b;
+ $self->usage_on_top ? $a cmp $b : $b cmp $a;
}
}
keys %$row
|