Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / Git / PurePerl / NewObject / Tree.pm
1 package Git::PurePerl::NewObject::Tree;
2 use Moose;
3 use MooseX::StrictConstructor;
4 use Moose::Util::TypeConstraints;
5 use namespace::autoclean;
6
7 extends 'Git::PurePerl::NewObject';
8
9 has 'kind' =>
10     ( is => 'ro', isa => 'ObjectKind', required => 1, default => 'tree' );
11 has 'directory_entries' => (
12     is         => 'rw',
13     isa        => 'ArrayRef[Git::PurePerl::NewDirectoryEntry]',
14     required   => 1,
15     auto_deref => 1,
16 );
17
18 sub _build_content {
19     my $self = shift;
20     my $content;
21     foreach my $de ( $self->directory_entries ) {
22         $content
23             .= $de->mode . ' '
24             . $de->filename . "\0"
25             . pack( 'H*', $de->sha1 );
26     }
27     $self->content($content);
28 }
29
30 __PACKAGE__->meta->make_immutable;
31