/[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 213 by dpavlin, Fri Oct 31 19:51:51 2008 UTC trunk/lib/Frey/VCI.pm revision 515 by dpavlin, Tue Nov 25 14:09:50 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    
 use HTML::Entities qw/encode_entities/;  
   
8  extends 'Frey';  extends 'Frey';
9  with 'Frey::Web';  with 'Frey::Web';
10    with 'Frey::Escape';
11    
12  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
13    
14  our $debug = 1;  has 'repo' => (
15            is => 'rw',
16  sub pre_dump {          isa => 'Str',
17          my $o = shift;          required => 1,
18          # because Data::Dumper::HTML sucks          default => 'file:///home/dpavlin/private/svn/Frey',
19          my $t;  );
20          if ( blessed($o) && $o->can('dump') ) {  
21                  $t = $o->dump;  has 'type' => (
22                  $t =~ s/ {8}/  /gm;          is => 'rw',
23          } else {          isa => 'Str',
24                  $t = dump( $o );          required => 1,
25          }          default => 'Svn',
26          return '<hr><pre>' . encode_entities($t) . '</pre><hr>';  );
27  }  
28    has 'project' => (
29  use MooseX::Method;          is => 'rw',
30            isa => 'Str',
31            required => 1,
32            default => 'trunk',
33    );
34    
35    has 'revision' => (
36            is => 'rw',
37            isa => 'Int|Str',
38            documentation => 'last revision in repository if not specified',
39    );
40    
41  method request => positional(  sub as_markup {
42          { isa => 'Continuity::RequestHolder', required => 1 },          my ( $self ) = @_;
 ) => sub {  
 #sub request {  
         my ( $self, $request ) = @_;  
   
         my %param = $request->params;  
         warn "## params = ",dump( %param );  
43    
44          my $html;          my $html;
         my $path = 'file:///home/dpavlin/private/svn/Frey';  
45    
46          my $repo = VCI->connect(          my $repo = VCI->connect(
47                  repo => $path,                  repo  => $self->repo,
48                  type => 'Svn',                  type  => $self->type,
49                  debug => 1,                  debug => $self->debug,
50          );          ) || die "can't open ",$self->type," ",$self->repo;
   
         $html .= qq|<h1>Projects</h1><ul>|;  
         $html .= qq|<li><a href="?name=$_">$_</a></li>| foreach map { $_->name } @{ $repo->projects };  
         $html .= qq|</ul>|;  
   
         $request->print( $self->page( title => $path, body => $html ) );  
         $request->next;  
51    
52          %param = $request->params;          my @projects_available = map { $_->name } @{ $repo->projects };
53          warn "## params = ",dump( %param );          die $self->project," not one of valid projects ", dump( @projects_available ) unless grep { $self->project } @projects_available;
54    
55          my $project = $repo->get_project( name => $param{name} );          my $project = $repo->get_project( name => $self->project );
56          my $rev = $project->head_revision;          my $rev = $self->revision || $project->head_revision;
57    
58          my $commit = $project->get_commit( revision => $rev );          my $commit = $project->get_commit( revision => $rev ) || die "can't get revision $rev: $@";
59    
60          sub div {          sub div {
61                  my ( $class, $text ) = @_;                  my ( $class, $text ) = @_;
# Line 75  method request => positional( Line 70  method request => positional(
70                  div( 'commiter', $commit->committer ) .                  div( 'commiter', $commit->committer ) .
71                  div( 'date',     $commit->time->iso8601 ) .                  div( 'date',     $commit->time->iso8601 ) .
72                  div( 'message',  $commit->message ) .                  div( 'message',  $commit->message ) .
73                  '<pre>' . encode_entities( $diff->raw ) . '</pre>' .                  '<pre>' . $self->html_escape( $diff->raw ) . '</pre>' .
74                  pre_dump( $diff );                  '<span class="frey-popdown">dump<code>' . $self->html_dump( $diff ) . '</code></span>';
75    
76          $request->print( $self->page(          $self->title( $self->repo . '/' . $project->name );
77                  title => $path . '/' . $project->name,          return $body;
                 body => $body,  
         ) );  
         $request->next;  
78  };  };
79    
80  warn "## VCI loaded";  warn "## VCI loaded";

Legend:
Removed from v.213  
changed lines
  Added in v.515

  ViewVC Help
Powered by ViewVC 1.1.26