/[Frey]/trunk/lib/Frey/VCI.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

Diff of /trunk/lib/Frey/VCI.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/lib/SourceSnoop.pm revision 188 by dpavlin, Sat Sep 13 16:59:07 2008 UTC trunk/lib/Frey/VCI.pm revision 513 by dpavlin, Tue Nov 25 13:53:53 2008 UTC
# Line 1  Line 1 
1  package SourceSnoop;  package Frey::VCI;
2    
3  use Moose;  use Moose;
4    
5  use lib '/rest/cvs/vci/lib'; # FIXME  use lib '/rest/cvs/vci/lib'; # FIXME
6  use VCI;  use VCI;
7    
8    use HTML::Entities qw/encode_entities/;
9    
10  extends 'Frey';  extends 'Frey';
11  with 'Frey::Web';  with 'Frey::Web';
12    
13  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
14    
15  our $debug = 1;  has 'repo' => (
16            is => 'rw',
17            isa => 'Str',
18            required => 1,
19            default => 'file:///home/dpavlin/private/svn/Frey',
20    );
21    
22    has 'type' => (
23            is => 'rw',
24            isa => 'Str',
25            required => 1,
26            default => 'Svn',
27    );
28    
29    has 'project' => (
30            is => 'rw',
31            isa => 'Str',
32            required => 1,
33            default => 'trunk',
34    );
35    
36    has 'revision' => (
37            is => 'rw',
38            isa => 'Int|Str',
39            documentation => 'last revision in repository if not specified',
40    );
41    
42  sub pre_dump {  sub pre_dump {
43          my $o = shift;          my $o = shift;
# Line 22  sub pre_dump { Line 49  sub pre_dump {
49          } else {          } else {
50                  $t = dump( $o );                  $t = dump( $o );
51          }          }
52          return "<pre>$t</pre>";          return '<hr><pre>' . encode_entities($t) . '</pre><hr>';
53  }  }
54    
55  sub html {  sub as_markup {
56          my ( $self, $request ) = @_;          my ( $self ) = @_;
   
         my %param = $request->params;  
         warn "## params = ",dump( %param );  
57    
58          my $html;          my $html;
         my $path = 'file:///home/dpavlin/private/svn/Frey';  
59    
60          my $repo = VCI->connect(          my $repo = VCI->connect(
61                  repo => $path,                  repo  => $self->repo,
62                  type => 'Svn',                  type  => $self->type,
63                  debug => 1,                  debug => $self->debug,
64          );          );
65    
66          $html .= qq|<h1>Projects</h1><ul>|;          my @projects_available = map { $_->name } @{ $repo->projects };
67          $html .= qq|<li><a href="?name=$_">$_</a></li>| foreach map { $_->name } @{ $repo->projects };          die $self->project," not one of valid projects ", dump( @projects_available ) unless grep { $self->project } @projects_available;
         $html .= qq|</ul>|;  
   
         $request->print( $self->page( title => $path, body => $html ) );  
         $request->next;  
68    
69          %param = $request->params;          my $project = $repo->get_project( name => $self->project );
70          warn "## params = ",dump( %param );          my $rev = $self->revision || $project->head_revision;
71    
72          my $project = $repo->get_project( name => $param{name} );          my $commit = $project->get_commit( revision => $rev ) || die "can't get revision $rev: $@";
         my $rev = $project->head_revision;  
   
         my $commit = $project->get_commit( revision => $rev );  
73    
74          sub div {          sub div {
75                  my ( $class, $text ) = @_;                  my ( $class, $text ) = @_;
76                  return "<div class=\"$class\">$text</div>";                  return "<div class=\"$class\">$text</div>";
77          }          }
78    
79            my $diff = $commit->as_diff;
80    
81          my $body =          my $body =
82                  '<h1>Commit</h1>' .                  '<h1>Commit</h1>' .
83                  div( 'revision', $commit->revision ) .                  div( 'revision', $commit->revision ) .
84                  div( 'commiter', $commit->committer ) .                  div( 'commiter', $commit->committer ) .
85                  div( 'date',     $commit->time->iso8601 ) .                  div( 'date',     $commit->time->iso8601 ) .
86                  div( 'message',  $commit->message ) .                  div( 'message',  $commit->message ) .
87                  '<pre>' . $commit->as_diff->raw . '</pre>';                  '<pre>' . encode_entities( $diff->raw ) . '</pre>' .
88                    pre_dump( $diff );
89    
90          $request->print( $self->page(          $self->title( $self->repo . '/' . $project->name );
91                  title => $path . '/' . $project->name,          return $body;
92                  body => $body,  };
         ) );  
         $request->next;  
 }  
93    
94  warn "## VCI loaded";  warn "## VCI loaded";
95    

Legend:
Removed from v.188  
changed lines
  Added in v.513

  ViewVC Help
Powered by ViewVC 1.1.26