--- 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;