%= javascript '/mojo/jquery/jquery.js' %= javascript '/mojo/prettify/run_prettify.js' %= stylesheet '/mojo/prettify/prettify-mojo-dark.css' %= stylesheet begin a img { border: 0 } body { background: url(<%= url_for '/mojo/pinstripe-light.png' %>); color: #445555; font: 0.9em 'Helvetica Neue', Helvetica, sans-serif; font-weight: normal; line-height: 1.5em; margin: 0; } pre { font: 0.9em Consolas, Menlo, Monaco, Courier, monospace; margin: 0; white-space: pre-wrap; } table { border-collapse: collapse; margin-top: 1em; margin-bottom: 1em; width: 100%; } td { padding: 0.5em } .box { background-color: #fff; box-shadow: 0px 0px 2px #999; overflow: hidden; padding: 1em; } .code { background-color: #1a1a1a; background: url(<%= url_for '/mojo/pinstripe-dark.png' %>); color: #eee; text-shadow: #333 0 1px 0; } .important { background-color: rgba(47, 48, 50, .75) } .infobox { color: #333 } .infobox tr:nth-child(odd) .value { background-color: #ddeeff } .infobox tr:nth-child(even) .value { background-color: #eef9ff } .key { text-align: right } .spaced { margin-left: 5em; margin-right: 5em; } .striped { border-top: solid #cce4ff 1px } .tap { font: 0.5em Verdana, sans-serif; text-align: center; } .value { padding-left: 1em; width: 100%; } #footer { padding-top: 1em; text-align: center; } #nothing { padding-top: 60px } #showcase > pre { font: 1.5em 'Helvetica Neue', Helvetica, sans-serif; font-weight: 300; margin: 0; text-shadow: #333 0 1px 0; } #showcase td { padding-top: 0; padding-bottom: 0; } #showcase .key { padding-right: 0 } #more, #trace { border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; } #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 } #request { border-top-left-radius: 5px; border-top-right-radius: 5px; margin-top: 1em; } #wrapperlicious { max-width: 1000px; margin: 0 auto; } % end %= include inline => app->renderer->_bundled('mojobar')
% my $cv = begin % my ($key, $value, $i) = @_; %= tag 'tr', $i ? (class => 'important') : undef, begin <%= $key %>
<%= $value %>
% end % end % my $kv = begin % my ($key, $value) = @_; <%= $key %>:
<%= $value %>
% end
<%= $exception->message %>
% for my $line (@{$exception->lines_before}) { %= $cv->($line->[0], $line->[1]) % } % if (defined $exception->line->[1]) { %= $cv->($exception->line->[0], $exception->line->[1], 1) % } % for my $line (@{$exception->lines_after}) { %= $cv->($line->[0], $line->[1]) % }
% if (defined $exception->line->[2]) {
% for my $line (@{$exception->lines_before}) { %= $cv->($line->[0], $line->[2]) % } %= $cv->($exception->line->[0], $exception->line->[2], 1) % for my $line (@{$exception->lines_after}) { %= $cv->($line->[0], $line->[2]) % }
tap for more
%= javascript begin var current = '#context'; $('#showcase').click(function() { $(current).slideToggle('slow', function() { if (current == '#context') { current = '#insight'; } else { current = '#context'; } $(current).slideToggle('slow'); }); }); $('#insight').toggle(); % end % }
% if (@{$exception->frames}) {
% for my $frame (@{$exception->frames}) { % }
<%= $frame->[1] . ':' . $frame->[2] %>
tap for more
%= javascript begin $('#trace').click(function() { $('#frames').slideToggle('slow'); }); $('#frames').toggle(); % end % }
% my $req = $self->req; %= $kv->(Method => $req->method) % my $url = $req->url; %= $kv->(URL => $url->to_string) %= $kv->('Base URL' => $url->base->to_string) %= $kv->(Parameters => dumper $req->params->to_hash) %= $kv->(Stash => dumper $snapshot) %= $kv->(Session => dumper session) %= $kv->(Version => $req->version) % for my $name (sort @{$self->req->headers->names}) { % my $value = $self->req->headers->header($name); %= $kv->($name, $value) % }
%= $kv->(Perl => "$^V ($^O)") % my $version = $Mojolicious::VERSION; % my $codename = $Mojolicious::CODENAME; %= $kv->(Mojolicious => "$version ($codename)") %= $kv->(Home => app->home) %= $kv->(Include => dumper \@INC) %= $kv->(PID => $$) %= $kv->(Name => $0) %= $kv->(Executable => $^X) %= $kv->(Time => scalar localtime(time))
tap for more
%= javascript begin $('#more').click(function() { $('#infos').slideToggle('slow'); }); $('#infos').toggle(); % end