/[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 186 by dpavlin, Sat Sep 13 14:19:04 2008 UTC trunk/lib/Frey/VCI.pm revision 535 by dpavlin, Wed Nov 26 16:17:17 2008 UTC
# Line 1  Line 1 
1  package SourceSnoop;  package Frey::VCI;
2    
3  use Moose;  use Moose;
4    
# Line 10  with 'Frey::Web'; Line 10  with 'Frey::Web';
10    
11  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
12    
13  our $debug = 1;  has 'repo' => (
14            is => 'rw',
15            isa => 'Str',
16            required => 1,
17            default => 'file:///home/dpavlin/private/svn/Frey',
18    );
19    
20    has 'type' => (
21            is => 'rw',
22            isa => 'Str',
23            required => 1,
24            default => 'Svn',
25    );
26    
27    has 'project' => (
28            is => 'rw',
29            isa => 'Str',
30            required => 1,
31            default => 'trunk',
32    );
33    
34    has 'revision' => (
35            is => 'rw',
36            isa => 'Int|Str',
37            documentation => 'last revision in repository if not specified',
38    );
39    
40  sub pre_dump {  sub as_markup {
41          my $o = shift;          my ( $self ) = @_;
         # because Data::Dumper::HTML sucks  
         my $t = $o->dump; $t =~ s/ {8}/  /gm;  
         return "<pre>$t</pre>";  
 }  
   
 sub html {  
         my ( $self, $request ) = @_;  
   
         my %param = $request->params;  
         warn "## params = ",dump( %param );  
42    
43          my $html;          my $html;
         my $path = 'file:///home/dpavlin/private/svn/Frey';  
44    
45          my $repo = VCI->connect(          my $repo = VCI->connect(
46                  repo => $path,                  repo  => $self->repo,
47                  type => 'Svn',                  type  => $self->type,
48                  debug => 1,                  debug => $self->debug,
49          );          ) || die "can't open ",$self->type," ",$self->repo;
50    
51          $html .= qq|<h1>Projects</h1><ul>|;          my @projects_available = map { $_->name } @{ $repo->projects };
52          $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;
53          $html .= qq|</ul>|;  
54            my $project = $repo->get_project( name => $self->project );
55          $request->print( $self->page( title => $path, body => $html ) );          my $rev = $self->revision || $project->head_revision;
56          $request->next;  
57            my $commit = $project->get_commit( revision => $rev ) || die "can't get revision $rev: $@";
58          my %param = $request->params;  
59          warn "## params = ",dump( %param );          sub div {
60                    my ( $class, $text ) = @_;
61          my $project = $repo->get_project( name => $param{name} );                  return "<div class=\"$class\">$text</div>";
62            }
63          $request->print( $self->page(  
64                  title => $path . '/' . $project->name ,          my $diff = $commit->as_diff;
65                  body => pre_dump( $project )  
66          ) );          my $body =
67          $request->next;                  '<h1>Commit</h1>' .
68  }                  div( 'revision', $commit->revision ) .
69                    div( 'commiter', $commit->committer ) .
70                    div( 'date',     $commit->time->iso8601 ) .
71                    div( 'message',  $commit->message ) .
72                    '<pre>' . $self->html_escape( $diff->raw ) . '</pre>';
73            
74            $self->add_status({ dump => $diff });
75    
76            $self->title( $self->repo . '/' . $project->name );
77            return $body;
78    };
79    
80  warn "## VCI loaded";  warn "## VCI loaded";
81    

Legend:
Removed from v.186  
changed lines
  Added in v.535

  ViewVC Help
Powered by ViewVC 1.1.26