The list is available via Tree->tree, so use that instead.
my ( $self, $c ) = @_;
my $repository = $c->stash->{Repository};
my $commit = $c->stash->{Commit};
- my $tree = $c->stash->{filename}
+ my $tree_obj = $c->stash->{filename}
? $repository->get_object($commit->sha_by_path($c->stash->{filename}))
- : $repository->get_object($commit->tree_sha1)
+ : $commit->tree->[0]
;
$c->stash(
- tree => $tree,
- tree_list => [$repository->list_tree($tree->sha1)],
+ tree => $tree_obj,
+ tree_list => $tree_obj->tree,
);
};
],
);
+ method _build_tree {
+ return [$self->repository->get_object($self->tree_sha1)];
+ }
+
method sha_by_path ($path) {
$path =~ s{/+$}();
# FIXME should this really just take the first result?
return $sha1;
}
- method list_tree (SHA1 $sha1?) {
- $sha1 ||= $self->head_hash;
- my $object = $self->get_object($sha1);
- return @{$object->tree};
- }
-
method get_object (NonEmptySimpleStr $sha1) {
unless (is_SHA1($sha1)) {
$sha1 = $self->head_hash($sha1);
Return the sha1 for HEAD, or any specified head.
-=head2 list_tree ($sha1?)
-
-Return an array of contents for a given tree.
-The tree is specified by sha1, and defaults to HEAD.
-Each item is a L<Gitalist::Git::Object>.
-
=head2 get_object ($sha1)
Return an appropriate subclass of L<Gitalist::Git::Object> for the given sha1.
is($proj->head_hash('refs/heads/master'), '36c6c6708b8360d7023e8a1649c45bcf9b3bd818', 'head_hash for refs/heads/master is correct');
is($proj->head_hash('rafs/head/mister'), undef, 'head_hash for rafs/head/mister is undef');
-is(scalar $proj->list_tree, 2, 'expected number of entries in tree');
-isa_ok(($proj->list_tree)[1], 'Gitalist::Git::Object');
-
# Return an ::Object from a sha1
my $obj1 = $proj->get_object('729a7c3f6ba5453b42d16a43692205f67fb23bc1');
isa_ok($obj1, 'Gitalist::Git::Object::Tree');
sha1 => '3f7567c7bdf7e7ebf410926493b92d398333116e',
);
isa_ok($commit_obj, 'Gitalist::Git::Object::Commit', "commit object");
+isa_ok($commit_obj->tree->[0], 'Gitalist::Git::Object::Tree');
my ($tree, $patch) = $commit_obj->diff(
patch => 1,
);