1 package Gitalist::Git::Object::HasTree;
4 role Gitalist::Git::Object::HasTree {
5 has tree => ( isa => 'ArrayRef[Gitalist::Git::Object]',
13 my $output = $self->_run_cmd(qw/ls-tree -z/, $self->sha1);
14 return unless defined $output;
17 for my $line (split /\0/, $output) {
18 my ($mode, $type, $object, $file) = split /\s+/, $line, 4;
19 # Ignore commits, these represent submodules
20 next if $type eq 'commit';
21 my $class = 'Gitalist::Git::Object::' . ucfirst($type);
22 push @ret, $class->new( mode => oct $mode,
26 repository => $self->repository,
43 Gitalist::Git::Object::HasTree - Git::Object::HasTree module for Gitalist
47 my $tree = Repository->get_object($tree_sha1);
51 Role for objects which have a tree - C<Commit> and C<Tree> objects.
64 See L<Gitalist> for authors.
68 See L<Gitalist> for the license.