Change HasUtils to an MX::Declare class
[catagits/Gitalist.git] / lib / Gitalist / Git / HasUtils.pm
1 use MooseX::Declare;
2 use Gitalist::Git::Util;
3
4 role Gitalist::Git::HasUtils {
5
6     mehod BUILD { }
7     after BUILD {
8         $self->meta->get_attribute('_util')->get_read_method_ref->($self); # Force value build.
9     }
10
11     has _util => ( isa => 'Gitalist::Git::Util',
12                    lazy => 1,
13                    is => 'bare',
14                    builder => '_build_util',
15                    handles => [ 'run_cmd',
16                                 'run_cmd_fh',
17                                 'run_cmd_list',
18                                 'get_gpp_object',
19                                 'gpp',
20                             ],
21                );
22
23     sub _build_util { confess(shift() . " cannot build _util") }
24 }
25
26 1;
27
28 __END__
29
30 =head1 AUTHORS
31
32 See L<Gitalist> for authors.
33
34 =head1 LICENSE
35
36 See L<Gitalist> for the license.
37
38 =cut