--- trunk/lib/Frey/Web.pm 2008/11/28 13:25:17 584
+++ trunk/lib/Frey/Web.pm 2008/11/28 16:39:37 591
@@ -98,10 +98,12 @@
$content =~ s{([^<]+
)}{$1} && $self->TODO("code wrapped in span");
- warn "## $type [$name] = ", length( $content ), " bytes" if $self->debug;
+ warn "## $type [$name] = ", length( $content ), " bytes"; # if $self->debug; # FIXME
if ( $name =~ m{::} && $name !~ $re_html ) {
return qq|$name $content\n|;
+ } elsif ( $name =~ s{^\s*($name $content\n|;
}
@@ -214,7 +216,11 @@
$url =~ s{\?reload=\d+}{};
my $body = $a->{body};
- $body ||= $self->as_markup if $self->can('as_markup');
+ if ( ! $body ) {
+ my $run = $a->{run} || 'as_markup';
+ warn "# no body, invoke $self->$run";
+ $body = $self->$run;
+ }
if ( $self->content_type !~ m{html} ) {
warn "# return only $self body ", $self->content_type;
return $body
@@ -300,6 +306,8 @@
sub editor_links {
my ( $self, $error ) = @_;
+# $error =~ s[(bless\({\s+.+?\s+},\s+)("[^"]+")(\) at)][$1$2
$3]gs; # FIXME insert bless hiding back
+
$error =~ s{at\s+(\S+)\s+line\s+(\d+)}
{at $1 line $2}gsm;
@@ -459,7 +467,9 @@
$level ||= $self->debug,
my $path = $self->log_path;
- my $warnings;
+ my $max = 50;
+ my $pos = 0;
+ my @warnings = ( '' x $max ); # XXX circualar buffer for 50 lines
my $line = 0;
my $multiline_end;
@@ -470,6 +480,8 @@
my $style = '';
+=for filter
+
if ( $multiline_end ) {
if ( m{^\Q$multiline_end\E} || m{^\s.+\Q$multiline_end\E;$} ) {
# warn "## $line end of $multiline_end in '$_'\n";
@@ -486,6 +498,9 @@
next;
}
+=cut
+ if ( m{^(#*)\s+} ) { # FIXME
+
$style = $warn_colors->{$1}
? ' style="color:' . $warn_colors->{$1} . '"'
: '';
@@ -496,17 +511,30 @@
$msg = substr( $msg, 0, $self->html_dump_width );
$spacer = '…'
}
- $msg =~ s{^\s}{ }g;
- $warnings .= qq|$msg$spacer+$line
|;
+ $warnings[ $pos++ % $max ]
+ = $msg
+# = ( $style ? qq|$msg| : $msg )
+ . $spacer
+ . qq|+$line
|;
# FIXME should be but CSS hates me
}
}
close($log) || die "can't close $path: $!";
+ my $size = -s $path;
+
+ my $warnings = join('',
+ map { $warnings[ ( $pos + $_ ) % $max ] || '' } 0 .. $max
+ );
+
+ my $s = length($warnings);
+
return
- qq||
+ # need to wrap into span so we can have links in warnings
+ qq||
;
}
@@ -534,7 +562,7 @@
push @backtrace,
qq|via $package at $path line $line|;
}
- warn "# backtrace: ", dump( @backtrace ) if @backtrace;
+ #warn "# backtrace: ", dump( @backtrace ) if @backtrace;
return @backtrace;
}