--- trunk/lib/Frey/Web.pm 2008/11/19 17:57:48 460
+++ trunk/lib/Frey/Web.pm 2008/11/20 11:56:41 473
@@ -1,6 +1,8 @@
package Frey::Web;
use Moose::Role;
+with 'Frey::Backtrace';
+
use Frey::Types;
use Continuity::Widget::DomNode;
@@ -22,8 +24,8 @@
isa => 'ArrayRef[HashRef[Str]]',
lazy => 1,
default => sub { [
- { 'Bookmarklets' => Frey::Bookmarklet->new->as_markup },
{ 'ClassBrowser' => Frey::ClassBrowser->new( usage_on_top => 0 )->as_markup },
+ { 'Bookmarklets' => Frey::Bookmarklet->new->as_markup },
] },
);
@@ -178,6 +180,19 @@
$body = '';
}
+ $status_line
+ .= qq||
+ if $self->warnings;
+
+ my $right =
+ qq|
+
+ $url
+
+ |;
+
my $html = join("\n",
qq|
|,
$self->_head_html,
@@ -189,8 +204,8 @@
$body
Frey $Frey::VERSION
-
$url
$status_line
+ $right
|,
@@ -201,34 +216,31 @@
return $html;
}
+sub editor_links {
+ my ( $self, $error ) = @_;
+
+ $error =~ s{at\s+(\S+)\s+line\s+(\d+)}
+ {at $1 line $2}gsm;
+
+ $error =~ s{(via package ")([\w:]+)(")}
+ {$1$2$3}gsm;
+
+ return $error;
+}
+
sub error {
my $self = shift;
my $error = join(" ", @_);
- my @backtrace;
- foreach ( 0 .. 5 ) {
- my @caller = caller($_) or last;
- my @description = ( qw/
- package filename line
- subroutine hasargs
- wantarray evaltext is_require
- hints bitmask hinthash
- /);
- push @backtrace, join(' ',
- map {
- $description[$_] . ': ' . dump $caller[$_]
- } ( 0 .. $#caller )
- );
- }
- if ( @backtrace ) {
- warn "# append backtrace: ", dump( @backtrace );
- $error .= "\n\t" . join( "\n\t", @backtrace );
- }
+ my @backtrace = $self->backtrace;
+ $error .= "\n\t" . join( "\n\t", @backtrace ) if @backtrace;
warn "ERROR: $error\n";
- $error =~ s{at\s+(\S+)\s+line\s+(\d+)}{at $1 line $2}gsm;
- $error =~ s{(via package ")([\w:]+)(")}{$1$2$3}gsm;
- return qq|$error
|;
+ return
+ qq||
+ . $self->editor_links( $error ) .
+ qq|
|
+ ;
}
1;