File Coverage

File:lib/Code/Statistics/SlurpyConstructor/Role/Attribute.pm
Coverage:100.0%

linestmtbrancondsubpodtimecode
1## no critic
2package Code::Statistics::SlurpyConstructor::Role::Attribute;
3
4# ABSTRACT: Internal class for Code::Statistics::SlurpyConstructor
5
6
2
2
2
0
0
0
use Moose::Role;
7
8has slurpy => (
9    is => 'ro',
10    isa => 'Bool',
11    default => 0,
12);
13
14before attach_to_class => sub {
15    my ( $self, $meta ) = @_;
16
17    return if not $self->slurpy;
18
19    my @slurpy =
20      map { $_->name }
21      grep { $_->slurpy }
22      $meta->get_all_attributes;
23
24    if ( scalar @slurpy ) {
25        my $message = sprintf(
26            "Can't add mutliple slurpy attributes to a class, attempting to add '%s', existing slurpy attribute '%s'",
27            $self->name,
28            $slurpy[ 0 ],
29        );
30        die $message;
31    }
32};
33
34
2
2
2
0
0
0
no Moose::Role;
35
361;
37