/[Frey]/trunk/lib/Frey/Server.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 /trunk/lib/Frey/Server.pm

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

revision 643 by dpavlin, Sun Nov 30 16:02:46 2008 UTC revision 835 by dpavlin, Sun Dec 14 14:13:35 2008 UTC
# Line 6  with 'Frey::Config'; Line 6  with 'Frey::Config';
6    
7  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
8    
9    #use Carp::REPL; # 'nodie';
10    
11    use lib 'lib';
12  use Frey::Run;  use Frey::Run;
13    
14  has 'port' => (  has 'port' => (
# Line 32  has 'editor' => ( Line 35  has 'editor' => (
35  This is simple dispatcher for our server. Currently it's in flux and  This is simple dispatcher for our server. Currently it's in flux and
36  documented only in source code.  documented only in source code.
37    
38      my $content_type = $self->request( $url, $params );
39    
40  =cut  =cut
41    
42  sub print {  sub print {
# Line 50  sub request { Line 55  sub request {
55          }          }
56    
57          my $path = $url->path;          my $path = $url->path;
58            my $content_type = 'text/plain';
59    
60  #       eval {          eval {
         {  
61    
62                  if ( $path =~ m{/reload(.*)} ) {                  if ( $path =~ m{/reload(.*)} ) {
63    
# Line 113  sub request { Line 118  sub request {
118                          my $class = rest2class $1;                          my $class = rest2class $1;
119                          warn "# run $path -> $class $2";                          warn "# run $path -> $class $2";
120                          $run->{format} = $3 if $3;                          $run->{format} = $3 if $3;
                         $params->{request_url} = $url,  
121                          $run->{$_} = $params->{$_} foreach keys %$params;                          $run->{$_} = $params->{$_} foreach keys %$params;
122                          $f = Frey::Run->new( class => $class, params => $run, run => $2, request_url => $url );                          $f = Frey::Run->new( class => $class, params => $run, run => $2 );
123                  } elsif (                  } elsif (
124                          $path =~ m{/([^/]+)/?$}                          $path =~ m{/([^/]+)/?$}
125                  ) {                  ) {
126                          my $class = rest2class $1;                          my $class = rest2class $1;
127                          warn "# introspect $class";                          warn "# introspect $class";
128                          $run->{class} ||= $class;                          $run->{class} ||= $class;
129                          $f = Frey::Run->new( class => 'Frey::Introspect', params => $run, request_url => $url );                          $f = Frey::Run->new( class => 'Frey::Introspect', params => $run );
130                  } else {                  } else {
131                          $f = Frey::Run->new( class => 'Frey::ClassBrowser', params => $run, request_url => $url );                          $f = Frey::Run->new( class => 'Frey::Class::Browser', params => $run );
132                  }                  }
133    
134                  if ( $f ) {                  if ( $f ) {
# Line 141  sub request { Line 145  sub request {
145                          confess "# can't call request on nothing!";                          confess "# can't call request on nothing!";
146                  }                  }
147    
148                    $content_type = $f->content_type;
149          };          };
150    
151          if ( $@ ) {          if ( $@ ) {
152                  warn "SERVER ERROR: $@";                  warn "SERVER ERROR: $@";
153  #               $req->conn->send_error( 404 );  # FIXME this should probably be 500, but we can't ship page with it  #               $req->conn->send_error( 404 );  # FIXME this should probably be 500, but we can't ship page with it
154                    $content_type = 'text/html';
155                  $self->print( qq{<pre class="frey-error">$@<pre>\r\n\r\n} );                  $self->print( qq{<pre class="frey-error">$@<pre>\r\n\r\n} );
156  #               Carp::REPL::repl;  #               Carp::REPL::repl;
157          }          }
158    
159            return $content_type;
160  }  }
161    
162  sub refresh {  sub refresh {

Legend:
Removed from v.643  
changed lines
  Added in v.835

  ViewVC Help
Powered by ViewVC 1.1.26