Showing 2 changed files with 32 additions and 14 deletions
+19 -4
lib/Gitprep/Git.pm
... ...
@@ -11,6 +11,7 @@ use File::Path 'mkpath';
11 11
 has 'bin';
12 12
 has 'rep_home';
13 13
 has 'encoding' => 'UTF-8';
14
+has text_exts => sub { ['txt'] };
14 15
 
15 16
 # Encode
16 17
 use Encode qw/encode decode/;
... ...
@@ -34,10 +35,18 @@ sub dec {
34 35
 }
35 36
 
36 37
 sub authors {
37
-  my ($self, $rep, $ref, $file) = @_;
38
+  my ($self, $user, $project, $ref, $file) = @_;
38 39
   
39 40
   # Command "git log FILE"
40
-  my @cmd = ($self->cmd($rep), 'log',  '--format=%an', $ref, '--', $file);
41
+  my @cmd = $self->_cmd(
42
+    $user,
43
+    $project,
44
+    'log',
45
+    '--format=%an',
46
+    $ref,
47
+    '--',
48
+    $file
49
+  );
41 50
   open my $fh, "-|", @cmd
42 51
     or croak 500, "Open git-cat-file failed";
43 52
   my $authors = {};
... ...
@@ -146,10 +155,16 @@ sub blob_contenttype {
146 155
 }
147 156
 
148 157
 sub blob_size_kb {
149
-  my ($self, $rep, $rev, $file) = @_;
158
+  my ($self, $user, $project, $rev, $file) = @_;
150 159
   
151 160
   # Command "git diff-tree"
152
-  my @cmd = ($self->cmd($rep), 'cat-file', '-s', "$rev:$file");
161
+  my @cmd = $self->_cmd(
162
+    $user,
163
+    $project,
164
+    'cat-file',
165
+    '-s',
166
+    "$rev:$file"
167
+  );
153 168
   open my $fh, "-|", @cmd
154 169
     or croak 500, "Open cat-file failed";
155 170
   my $size = $self->dec(scalar <$fh>);
+13 -10
templates/main/blob.html.ep
... ...
@@ -5,35 +5,38 @@
5 5
   # Parameters
6 6
   my $user = param('user');
7 7
   my $project = param('project');
8
-  my $root_ns = $api->root_ns(config->{root});
9
-  my $rep_ns = "$root_ns/$user/$project.git";
10
-  my $rep = "/$rep_ns";
11 8
   my $object = param('object');
12 9
 
13 10
   # Git
14 11
   my $git = $self->app->git;
15 12
   
16 13
   # Revision and blob
17
-  my ($rev, $blob) = $git->parse_object($rep, $object);
14
+  my ($rev, $blob) = @{$git->parse_object($user, $project, $object)};
18 15
 
19 16
   # Commit log
20
-  my $commit_log = $git->latest_commit_log($rep, $rev, $blob);
17
+  my $commit_log = $git->latest_commit_log($user, $project, $rev, $blob);
21 18
 
22 19
   # Commit
23
-  my $commit = $git->parse_commit($rep, $rev);
20
+  my $commit = $git->parse_commit($user, $project, $rev);
24 21
   
25 22
   # Authors
26
-  my $authors = $git->authors($rep, $rev, $blob);
23
+  my $authors = $git->authors($user, $project, $rev, $blob);
27 24
   
28 25
   # Blob content
29
-  my $bid = $git->id_by_path($rep, $rev, $blob, 'blob')
26
+  my $bid = $git->id_by_path($user, $project, $rev, $blob, 'blob')
30 27
     or $api->croak('Cannot find file');
31
-  my @cmd = ($git->cmd($rep), 'cat-file', 'blob', $bid);
28
+  my @cmd = $git->_cmd(
29
+    $user,
30
+    $project,
31
+    'cat-file',
32
+    'blob',
33
+    $bid
34
+  );
32 35
   open my $fh, '-|', @cmd
33 36
     or $api->croak(qq/Couldn't cat "$blob", "$bid"/);
34 37
   
35 38
   # Blob info
36
-  my $blob_size = $git->blob_size_kb($rep, $rev, $blob);
39
+  my $blob_size = $git->blob_size_kb($user, $project, $rev, $blob);
37 40
   my $mimetype = $git->blob_mimetype($fh, $blob);
38 41
 
39 42
   # Parse line