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.26';
3 53     53   809 use v5.10;
  53         247  
4 53     53   328 use strict;
  53         115  
  53         1650  
5 53     53   287 use warnings;
  53         112  
  53         3144  
6 53     53   343 use Moo;
  53         114  
  53         407  
7 53     53   25044 use Types::Standard qw(Enum CodeRef Bool);
  53         153  
  53         627  
8              
9             use constant {
10 53         18849 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 53     53   135642 };
  53         130  
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 276     276 1 507 my ($self) = @_;
48              
49             # whether a hook type will modify the input data
50             # with return statements
51 276         541 my %modifying = map { $_ => 1 } (
  552         1586  
52             HOOK_BEFORE_MANGLE,
53             HOOK_REFORMAT
54             );
55 276         1689 return exists $modifying{$self->hook};
56              
57             }
58              
59             1;
60              
61             __END__