5 |
with 'Frey::Session'; |
with 'Frey::Session'; |
6 |
|
|
7 |
use Data::Dump qw/dump/; |
use Data::Dump qw/dump/; |
|
use Frey::View::Dumper; |
|
8 |
use JSON; |
use JSON; |
9 |
use YAML; |
use YAML; |
10 |
|
|
11 |
|
use lib 'lib'; |
12 |
|
use Frey::View::Dumper; |
13 |
|
|
14 |
=head1 NAME |
=head1 NAME |
15 |
|
|
16 |
Frey::Run - display required form field for Class and run it |
Frey::Run - display required form field for Class and run it |
27 |
=cut |
=cut |
28 |
|
|
29 |
use Moose::Util::TypeConstraints; |
use Moose::Util::TypeConstraints; |
30 |
|
use Frey::Class::Loader; # class_runnable_re |
31 |
|
|
32 |
subtype 'Runnable' |
subtype 'Runnable' |
33 |
=> as 'Str', |
=> as 'Str', |
34 |
=> where sub { m{^as_} || m{_as_} }; |
=> where sub { Frey::Class::Loader::class_runnable_re }; |
35 |
|
|
36 |
sub formats_available { qw/html js json yaml yml/ } |
sub formats_available { qw/html js json yaml yml/ } |
37 |
enum 'Formats' => formats_available; |
enum 'Formats' => formats_available; |
107 |
|
|
108 |
if ( $self->run =~ m{as_markup} ) { |
if ( $self->run =~ m{as_markup} ) { |
109 |
$html = $o->page( run => $self->run ); |
$html = $o->page( run => $self->run ); |
110 |
} elsif ( $self->run =~ m{as_sponge} ) { |
} elsif ( $self->run =~ m{(.*as_sponge)} ) { |
111 |
$data = $o->as_sponge; |
$data = $o->$1; |
112 |
confess "invalid data from sponge = ", dump( $data ) unless ref($data) eq 'HASH'; |
confess "invalid data from sponge = ", dump( $data ) unless ref($data) eq 'HASH'; |
113 |
if ( $self->format eq 'html' ) { |
if ( $self->format eq 'html' ) { |
114 |
my $rows = $#{ $data->{rows} } + 1; |
my $rows = $#{ $data->{rows} } + 1; |
118 |
$body .= '<tr><th>' . join('</th><th>', @{$data->{NAME}} ) . '</th></tr>'; |
$body .= '<tr><th>' . join('</th><th>', @{$data->{NAME}} ) . '</th></tr>'; |
119 |
$body .= '<tr><td>' . join('</td><td>', @$_ ) . '</td></tr>' foreach @{ $data->{rows} }; |
$body .= '<tr><td>' . join('</td><td>', @$_ ) . '</td></tr>' foreach @{ $data->{rows} }; |
120 |
$body .= '</table>'; |
$body .= '</table>'; |
121 |
|
|
122 |
|
delete( $data->{rows} ); # too much dumplication |
123 |
|
$body .= Frey::View::Dumper->new( data => $data )->as_markup if $data; |
124 |
} |
} |
125 |
} elsif ( $self->run =~ m{as_data} ) { |
} elsif ( $self->run =~ m{(as_data|sql)} ) { |
126 |
my $run = $self->run; |
my $run = $self->run; |
127 |
$data = $o->$run; |
$data = $o->$run; |
128 |
confess "no data for $class->$run" unless defined $data; |
confess "no data for $class->$run" unless defined $data; |
137 |
} |
} |
138 |
if ( ! $html ) { |
if ( ! $html ) { |
139 |
$body = Frey::View::Dumper->new( data => $body )->as_markup if ref $body; |
$body = Frey::View::Dumper->new( data => $body )->as_markup if ref $body; |
140 |
$body .= Frey::View::Dumper->new( data => $data )->as_markup if defined $data; |
$body .= Frey::View::Dumper->new( data => $data )->as_markup if defined $data && ! defined $body; |
141 |
} |
} |
142 |
|
|
143 |
$o->title( $class ); |
$o->title( $class ); |