--- trunk/lib/SourceSnoop.pm 2008/09/13 14:19:04 186 +++ trunk/lib/SourceSnoop.pm 2008/10/31 19:51:51 213 @@ -5,6 +5,8 @@ use lib '/rest/cvs/vci/lib'; # FIXME use VCI; +use HTML::Entities qw/encode_entities/; + extends 'Frey'; with 'Frey::Web'; @@ -15,11 +17,22 @@ sub pre_dump { my $o = shift; # because Data::Dumper::HTML sucks - my $t = $o->dump; $t =~ s/ {8}/ /gm; - return "
$t
"; + my $t; + if ( blessed($o) && $o->can('dump') ) { + $t = $o->dump; + $t =~ s/ {8}/ /gm; + } else { + $t = dump( $o ); + } + return '
' . encode_entities($t) . '

'; } -sub html { +use MooseX::Method; + +method request => positional( + { isa => 'Continuity::RequestHolder', required => 1 }, +) => sub { +#sub request { my ( $self, $request ) = @_; my %param = $request->params; @@ -41,17 +54,36 @@ $request->print( $self->page( title => $path, body => $html ) ); $request->next; - my %param = $request->params; + %param = $request->params; warn "## params = ",dump( %param ); my $project = $repo->get_project( name => $param{name} ); + my $rev = $project->head_revision; + + my $commit = $project->get_commit( revision => $rev ); + + sub div { + my ( $class, $text ) = @_; + return "
$text
"; + } + + my $diff = $commit->as_diff; + + my $body = + '

Commit

' . + div( 'revision', $commit->revision ) . + div( 'commiter', $commit->committer ) . + div( 'date', $commit->time->iso8601 ) . + div( 'message', $commit->message ) . + '
' . encode_entities( $diff->raw ) . '
' . + pre_dump( $diff ); $request->print( $self->page( - title => $path . '/' . $project->name , - body => pre_dump( $project ) + title => $path . '/' . $project->name, + body => $body, ) ); $request->next; -} +}; warn "## VCI loaded";