228 |
eval { |
eval { |
229 |
$body = $self->$run; |
$body = $self->$run; |
230 |
}; |
}; |
231 |
$body |
$body = $self->error( $@, '' ) if $@; |
|
= $self->error( $@ ) |
|
|
. $self->dropdown( self => $self ) |
|
|
if $@; |
|
232 |
} |
} |
233 |
if ( $self->content_type !~ m{html} ) { |
if ( $self->content_type !~ m{html} ) { |
234 |
warn "# return only $self body ", $self->content_type; |
warn "# return only $self body ", $self->content_type; |
319 |
|
|
320 |
# perl's backtrace |
# perl's backtrace |
321 |
$error =~ s{at\s+(\S+)\s+line\s+(\d+)} |
$error =~ s{at\s+(\S+)\s+line\s+(\d+)} |
322 |
{at <a target="editor" href="/editor+$1+$2">$1</a> line $2}gsm; |
{at <a target="editor" href="/editor+$1+$2" title="vi $1 +$2">$1</a> line $2}gsm; |
323 |
|
|
324 |
# our backtrace |
$error =~ s{(via (?:package)\s+"?)([\w:]+)("?)} |
325 |
$error =~ s{(via (?:package) "?)([\w:]+)("?)} |
{$1<a target="$2" href="/$2" title="introspect $2">$2</a>$3}gsm |
326 |
{$1<a target="editor" href="/editor+$2+1">$2</a>$3}gsm; |
|| # or anything that looks like "Class::Name" |
327 |
|
$error =~ s{"(\w+(?:::\w+)+)"} |
328 |
|
{"<a target="$1" href="/$1" title="introspect $1">$1</a>"}gsm; |
329 |
|
|
330 |
# method error messages |
# method error messages |
331 |
# $error =~ s{(method ")(\w+)"} |
# FIXME replace with link to Frey::Introspect data |
332 |
# {$1<a target="/Frey::Shell::Grep?pattern=$2">$2</a>"}gsm; # FIXME replace with link to Frey::Introspect data |
$error =~ s{(method ")(\w+)(" via)} |
333 |
|
{$1<a target="$2" href="/Frey::Shell::Grep/as_markup?pattern=$2" title="grep $2">$2</a>$3}gsm; |
334 |
|
|
|
# anything that looks like Class::Name= |
|
|
$error =~ s{(\w+(?:::\w+)+)=} |
|
|
{<a target="$1" href="/$1">$1</a>=}gsm; |
|
335 |
|
|
336 |
return $error; |
return $error; |
337 |
} |
} |
630 |
) = caller($_) or last; |
) = caller($_) or last; |
631 |
|
|
632 |
push @backtrace, |
push @backtrace, |
633 |
qq|via $package at $path line $line|; |
qq|via "$package" at $path line $line|; |
634 |
} |
} |
635 |
#warn "# backtrace: ", dump( @backtrace ) if @backtrace; |
#warn "# backtrace: ", dump( @backtrace ) if @backtrace; |
636 |
return @backtrace; |
return @backtrace; |