--- trunk/lib/Frey/ClassBrowser.pm 2008/11/28 23:22:22 607 +++ trunk/lib/Frey/Class/Browser.pm 2009/01/05 22:08:48 925 @@ -1,7 +1,7 @@ -package Frey::ClassBrowser; +package Frey::Class::Browser; use Moose; -extends 'Frey::ClassLoader'; +extends 'Frey::Class::Loader'; with 'Frey::Web'; with 'Frey::Session'; with 'Frey::Web::CombineImages'; @@ -9,6 +9,13 @@ use Frey::Run; use Data::Dump qw/dump/; +has 'usage_sort' => ( + is => 'rw', + isa => 'Bool', + default => 0, + documentation => 'Sort by class usage', +); + has 'usage_on_top' => ( is => 'rw', isa => 'Bool', @@ -25,14 +32,17 @@ $usage ||= $self->session_dump( $self->usage ); #warn "# usage ",dump( $usage ); + + if ( ! $self->can('icon_path') ) { + $self->TODO( "re-apply Frey::Web on $self" ); + Frey::Web->meta->apply( $self ); + } + + my $runnable = $self->load('var/Frey/Class/Browser/runnable.yaml'); + foreach my $class ( $self->classes ) { - 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 ); + my $icon = $self->icon_path( $class ); if ($icon) { push @icons, $icon; $icon = qq||; @@ -53,12 +63,16 @@ } } + my @runnable = (); + @runnable = @{ $runnable->{ $class } } if defined $runnable->{ $class }; # FIXME needs review + @runnable = $self->class_runnable( $class ) unless @runnable; + my @run = map { my $invoke = $_; s{^as_}{}; s{_as_\w+}{}; qq|$_|; - } $self->class_runnable( $class ); + } @runnable; push @run, qq|collection| if $class->can('collection_table'); my @inputs = $self->class_inputs( $class ); @@ -92,7 +106,7 @@ $html; } sort { - if ( $usage->{$a} || $usage->{$b} ) { + if ( $self->usage_sort && ( $usage->{$a} || $usage->{$b} ) ) { $self->usage_on_top ? $usage->{$b} <=> $usage->{$a} : $usage->{$a} <=> $usage->{$b}; } else { $self->usage_on_top ? $a cmp $b : $b cmp $a;