aboutsummaryrefslogtreecommitdiff
path: root/lib/Net/Hawk/Role/WithUtils.pm
blob: bd3a95d60ae7300ff22480a3c5eb1dad8e4854ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package Net::Hawk::Role::WithUtils; 
use strict;
use warnings;
use 5.010;
use Package::Variant
    importing => ['Moo::Role'],
    subs => ['has'];
use Types::Standard 1.000003 qw(HasMethods);
 
sub make_variant {
    my ($class,$target_package,@methods) = @_;
 
    has _utils => (
        is => 'ro',
        (@methods ? ( isa => HasMethods[@methods] ) : () ),
        init_arg => 'utils',
        default => sub {
            require Net::Hawk::Utils;
            Net::Hawk::Utils->new;
        },
    );
}
 
1;