File Coverage

blib/lib/Elive/Entity/Role.pm
Criterion Covered Total %
statement 23 23 100.0
branch 2 2 100.0
condition 2 3 66.6
subroutine 6 6 100.0
pod 1 1 100.0
total 34 35 97.1


line stmt bran cond sub pod time code
1             package Elive::Entity::Role;
2 7     7   1096 use warnings; use strict;
  7     7   10  
  7         230  
  7         37  
  7         13  
  7         187  
3              
4 7     7   30 use Mouse;
  7         13  
  7         36  
5 7     7   2163 use Mouse::Util::TypeConstraints;
  7         21  
  7         53  
6              
7             extends 'Elive::Entity';
8              
9             =head1 NAME
10              
11             Elive::Entity::Role - Elluminate Role entity class
12              
13             =head1 DESCRIPTION
14              
15             This is a structural class for Elive roles. It is a component of the
16             L and L
17             entities.
18              
19             =cut
20              
21             __PACKAGE__->entity_name('Role');
22              
23             has 'roleId' => (is => 'rw', isa => 'Int', required => 1);
24             __PACKAGE__->primary_key('roleId');
25              
26             our ( $SYSTEM_ADMIN, $APPLICATION_ADMIN, $MODERATOR, $PARTICIPANT );
27             BEGIN {
28 7     7   1386 $SYSTEM_ADMIN = 0;
29 7         16 $APPLICATION_ADMIN = 1;
30 7         10 $MODERATOR = 2;
31 7         984 $PARTICIPANT = 3;
32             }
33              
34             sub BUILDARGS {
35 106     106 1 221 my $class = shift;
36 106         129 my $spec = shift;
37              
38 106         108 my $args;
39 106 100 66     469 if (defined $spec && ! ref $spec) {
40 21         60 $args = {roleId => $spec};
41             }
42             else {
43 85         126 $args = $spec;
44             }
45              
46 106         908 return $args;
47             }
48              
49             coerce 'Elive::Entity::Role' => from 'HashRef|Int'
50             => via {Elive::Entity::Role->new($_) };
51              
52             1;