/[Frey]/branches/mojo/lib/Frey/Mojo/Run.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /branches/mojo/lib/Frey/Mojo/Run.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 242 by dpavlin, Sun Nov 2 18:27:19 2008 UTC revision 243 by dpavlin, Sun Nov 2 21:24:04 2008 UTC
# Line 10  use Carp qw/confess/; Line 10  use Carp qw/confess/;
10    
11  use Frey::ClassLoader;  use Frey::ClassLoader;
12    
13  warn "# ",dump( Frey::ClassLoader->new->load_all_classes() );  warn "# load_all_classes ",dump( Frey::ClassLoader->new->load_all_classes() );
14    
15    use Frey::Run;
16    
17  sub markup {  sub markup {
18      my ($self, $c) = @_;      my ($self, $c) = @_;
# Line 24  sub markup { Line 25  sub markup {
25          my $class = $c->match->captures->{class} || 'Frey::ClassBrowser';          my $class = $c->match->captures->{class} || 'Frey::ClassBrowser';
26          $class =~ s{[/-]}{::}g;          $class =~ s{[/-]}{::}g;
27    
28          my @required =          warn "# c ",dump( $c );
29                  grep {  
30                          defined $_ && !defined( $params->{$_} )          my $html = Frey::Run->new( class => $class )->html;
                 }  
                 map {  
                         my $attr = $class->meta->get_attribute($_);  
                         $attr->is_required && $_  
                 } $class->meta->get_attribute_list;  
   
         warn "## required = ",dump( @required );  
   
         my $html;  
   
         my $values = {};  
         $values = $class->config($class) if $class->can('config');  
   
         if ( @required ) {  
                 $html = qq|<h1>Required params for $class</h1><form method="get">|;  
                 foreach my $name ( @required ) {  
                         my $type = $name =~ m/^pass/ ? 'password' : 'text';  
                         my $value = $values ? $values->{$name} : '';  
                         $html .= qq|<label for="$name">$name</label><input type="$type" name="$name" value="$value">|;  
                 }  
                 $html .= qq|<input type="submit" value="Run $class"></form>|;  
         } else {  
   
                 my $o = $class->new( %$params );  
                 $o->depends if $o->can('depends');  
   
                 if ( $o->can('markup') ) {  
                         $html = eval { $o->markup };  
                         if ( $@ ) {  
                                 warn $@;  
                                 $html .= qq{<code>$@</code>};  
                         }  
                 } else {  
                         warn "SKIP: $class can't markup";  
                 }  
   
         }  
   
         eval {  
                 # FIXME am I paranoid?  
                 package Mock::Web;  
                 use Moose;  
                 extends 'Frey';  
                 with 'Frey::Web';  
   
                 $html = Mock::Web->new->page(  
                         title => $class,  
                         body => $html,  
                 );  
         };  
31    
32      # Response objec      # Response objec
33      my $res = $c->res;      my $res = $c->res;
# Line 85  sub markup { Line 36  sub markup {
36          $res->body( $html );          $res->body( $html );
37  }  }
38    
39    sub data {
40            my ($self, $c) = @_;
41            $self->markup( $c );
42    }
43    
44  1;  1;

Legend:
Removed from v.242  
changed lines
  Added in v.243

  ViewVC Help
Powered by ViewVC 1.1.26