--- trunk/lib/Frey/Server.pm 2008/11/05 08:21:02 291 +++ trunk/lib/Frey/Server.pm 2008/11/05 08:21:03 292 @@ -68,23 +68,41 @@ my %params = $req->params; my $html; + sub rest2class { + my $class = shift; + $class =~ s/-/::/; # sigh! + return $class; + } + + eval { my $f; my $run_regexp = join('|', Frey::Run->execute ); - if ( $path =~ m!/Frey[:-]+ObjectBrowser! ) { + if ( + $path =~ m{/Frey[:-]+ObjectBrowser} + ) { $f = Frey::ObjectBrowser->new( fey_class => $params{class} ); $f->request( $req ); - } elsif ( $path =~ m!/Frey[:-]+ObjectDesigner! ) { + } elsif ( + $path =~ m{/Frey[:-]+ObjectDesigner} + ) { $f = Frey::ObjectDesigner->new( fey_class => $params{class} ); $f->request( $req ); - } elsif ( $path =~ m!/([^/]+)/($run_regexp)! ) { - my $class = $1; - $class =~ s/-/::/; # sigh! + } elsif ( + $path =~ m{/([^/]+)/($run_regexp)} + ) { + my $class = rest2class $1; warn "# run $class $2\n"; $f = Frey::Run->new( class => $class, params => \%params ); + } elsif ( + $path =~ m{/([^/]+)/?$} + ) { + my $class = rest2class $1; + warn "# introspect $class"; + $f = Frey::Run->new( class => 'Frey::Introspect', params => { class => $class } ); } else { $f = Frey::Run->new( class => 'Frey::ClassBrowser' ); }