File Coverage

blib/lib/Form/Tiny/Hook.pm
Criterion Covered Total %
statement 21 21 100.0
branch n/a
condition n/a
subroutine 7 7 100.0
pod 1 1 100.0
total 29 29 100.0


line stmt bran cond sub pod time code
1             package Form::Tiny::Hook;
2             $Form::Tiny::Hook::VERSION = '2.21';
3 52     52   742 use v5.10;
  52         191  
4 52     52   290 use strict;
  52         140  
  52         1133  
5 52     52   268 use warnings;
  52         172  
  52         2443  
6 52     52   413 use Moo;
  52         162  
  52         507  
7 52     52   19789 use Types::Standard qw(Enum CodeRef Bool);
  52         170  
  52         586  
8              
9             use constant {
10 52         17286 HOOK_REFORMAT => 'reformat',
11             HOOK_BEFORE_MANGLE => 'before_mangle',
12             HOOK_BEFORE_VALIDATE => 'before_validate',
13             HOOK_AFTER_VALIDATE => 'after_validate',
14             HOOK_CLEANUP => 'cleanup',
15             HOOK_AFTER_ERROR => 'after_error',
16 52     52   95902 };
  52         151  
17              
18             my @hooks = (
19             HOOK_REFORMAT,
20             HOOK_BEFORE_MANGLE,
21             HOOK_BEFORE_VALIDATE,
22             HOOK_AFTER_VALIDATE,
23             HOOK_CLEANUP,
24             HOOK_AFTER_ERROR,
25             );
26              
27             has 'hook' => (
28             is => 'ro',
29             isa => Enum [@hooks],
30             required => 1,
31             );
32              
33             has 'code' => (
34             is => 'ro',
35             isa => CodeRef,
36             required => 1,
37             );
38              
39             has 'inherited' => (
40             is => 'ro',
41             isa => Bool,
42             default => sub { 1 },
43             );
44              
45             sub is_modifying
46             {
47 265     265 1 474 my ($self) = @_;
48              
49             # whether a hook type will modify the input data
50             # with return statements
51 265         509 my %modifying = map { $_ => 1 } (
  530         1406  
52             HOOK_BEFORE_MANGLE,
53             HOOK_REFORMAT
54             );
55 265         1437 return exists $modifying{$self->hook};
56              
57             }
58              
59             1;
60              
61             __END__