--- trunk/lib/Frey/Run.pm 2008/11/18 02:15:11 399 +++ trunk/lib/Frey/Run.pm 2008/11/18 02:16:38 400 @@ -25,9 +25,8 @@ use Moose::Util::TypeConstraints; -enum 'Runnable' => qw/data markup sponge/; - -sub runnable { qw/data markup sponge/ } +sub runnable { qw/data data.js markup sponge/ } +enum 'Runnable' => runnable; has 'class' => ( is => 'rw', @@ -59,12 +58,17 @@ warn "got params form for $class"; } else { my $o; + # we don't want default status elements + $self->params->{status} = []; $o = $class->new( %{ $self->params } ); $o->depends if $o->can('depends'); if ( $self->run eq 'markup' ) { warn "## using ",ref($o), "->markup"; $html = $o->markup; + # preserve status + push @{ $self->status }, { $class => $o->status } if $o->can('status'); + warn ">>> markup $class ",length( $html ), " bytes\n"; } elsif ( $self->run eq 'sponge' ) { my $data = $o->sponge; @@ -76,20 +80,31 @@ $html .= '
' . $self->html_dump( $data ) . '
';
+ if ( my $format = $1 ) {
+ $html .= to_json( $data ) if $format =~ m{js(on)?};
+ $html .= Dump( $data ) if $format =~ m{yaml?};
+ }
+ if ( ! $html ) {
+ $html .= Frey::Dumper->new( data => $data )->markup;
+ push @{ $self->status }, { 'Dump' => $data };
+ }
} else {
$html = $self->error( "IGNORE: $class ", $o->dump );
}
};
+ if ( ref($html) eq 'HASH' ) {
+ $html = $self->page( %$html );
+ } else {
+ $html = $self->page( title => $self->class, body => $html );
+ };
};
- $html .= $self->error( $@ ) if $@;
- return $self->page( %$html ) if ref($html) eq 'HASH';
- return $self->page( title => $self->class, body => $html );
+ $html = $self->error( $@ ) if $@;
+
+ return $html;
}
1;