/[Frey]/trunk/lib/SourceSnoop.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/lib/SourceSnoop.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 213 - (show annotations)
Fri Oct 31 19:51:51 2008 UTC (15 years, 5 months ago) by dpavlin
File size: 1826 byte(s)
rest of rename from html -> request
1 package SourceSnoop;
2
3 use Moose;
4
5 use lib '/rest/cvs/vci/lib'; # FIXME
6 use VCI;
7
8 use HTML::Entities qw/encode_entities/;
9
10 extends 'Frey';
11 with 'Frey::Web';
12
13 use Data::Dump qw/dump/;
14
15 our $debug = 1;
16
17 sub pre_dump {
18 my $o = shift;
19 # because Data::Dumper::HTML sucks
20 my $t;
21 if ( blessed($o) && $o->can('dump') ) {
22 $t = $o->dump;
23 $t =~ s/ {8}/ /gm;
24 } else {
25 $t = dump( $o );
26 }
27 return '<hr><pre>' . encode_entities($t) . '</pre><hr>';
28 }
29
30 use MooseX::Method;
31
32 method request => positional(
33 { isa => 'Continuity::RequestHolder', required => 1 },
34 ) => sub {
35 #sub request {
36 my ( $self, $request ) = @_;
37
38 my %param = $request->params;
39 warn "## params = ",dump( %param );
40
41 my $html;
42 my $path = 'file:///home/dpavlin/private/svn/Frey';
43
44 my $repo = VCI->connect(
45 repo => $path,
46 type => 'Svn',
47 debug => 1,
48 );
49
50 $html .= qq|<h1>Projects</h1><ul>|;
51 $html .= qq|<li><a href="?name=$_">$_</a></li>| foreach map { $_->name } @{ $repo->projects };
52 $html .= qq|</ul>|;
53
54 $request->print( $self->page( title => $path, body => $html ) );
55 $request->next;
56
57 %param = $request->params;
58 warn "## params = ",dump( %param );
59
60 my $project = $repo->get_project( name => $param{name} );
61 my $rev = $project->head_revision;
62
63 my $commit = $project->get_commit( revision => $rev );
64
65 sub div {
66 my ( $class, $text ) = @_;
67 return "<div class=\"$class\">$text</div>";
68 }
69
70 my $diff = $commit->as_diff;
71
72 my $body =
73 '<h1>Commit</h1>' .
74 div( 'revision', $commit->revision ) .
75 div( 'commiter', $commit->committer ) .
76 div( 'date', $commit->time->iso8601 ) .
77 div( 'message', $commit->message ) .
78 '<pre>' . encode_entities( $diff->raw ) . '</pre>' .
79 pre_dump( $diff );
80
81 $request->print( $self->page(
82 title => $path . '/' . $project->name,
83 body => $body,
84 ) );
85 $request->next;
86 };
87
88 warn "## VCI loaded";
89
90 1;

  ViewVC Help
Powered by ViewVC 1.1.26