File Coverage

blib/lib/Syccess/Validator/Required.pm
Criterion Covered Total %
statement 9 9 100.0
branch 2 2 100.0
condition 4 6 66.6
subroutine 4 4 100.0
pod 0 1 0.0
total 19 22 86.3


line stmt bran cond sub pod time code
1             package Syccess::Validator::Required;
2             BEGIN {
3 2     2   2928 $Syccess::Validator::Required::AUTHORITY = 'cpan:GETTY';
4             }
5             # ABSTRACT: A validator to check for a required field
6             $Syccess::Validator::Required::VERSION = '0.103';
7 2     2   14 use Moo;
  2         4  
  2         11  
8              
9             with qw(
10             Syccess::Validator
11             );
12              
13             has message => (
14             is => 'lazy',
15             );
16              
17             sub _build_message {
18 1     1   9 return '%s is required.';
19             }
20              
21             sub validate {
22 6     6 0 7 my ( $self, %params ) = @_;
23 6         17 my $name = $self->syccess_field->name;
24 6 100 66     49 return $self->message if !exists($params{$name})
      66        
25             || !defined($params{$name})
26             || $params{$name} eq '';
27 4         26 return;
28             }
29              
30             1;
31              
32             __END__
33              
34             =pod
35              
36             =head1 NAME
37              
38             Syccess::Validator::Required - A validator to check for a required field
39              
40             =head1 VERSION
41              
42             version 0.103
43              
44             =head1 SYNOPSIS
45              
46             Syccess->new(
47             fields => [
48             foo => [ required => 1 ],
49             bar => [ required => {
50             message => 'You have 5 seconds to comply.'
51             } ],
52             ],
53             );
54              
55             =head1 DESCRIPTION
56              
57             This validator allows to check if a field is required. The default error
58             message is B<'%s is required.'> and can be overriden via the L</message>
59             parameter.
60              
61             =head1 ATTRIBUTES
62              
63             =head2 message
64              
65             This contains the error message or the format for the error message
66             generation. See L<Syccess::Error/validator_message>.
67              
68             =encoding utf8
69              
70             =head1 SUPPORT
71              
72             IRC
73              
74             Join #sycontent on irc.perl.org. Highlight Getty for fast reaction :).
75              
76             Repository
77              
78             http://github.com/SyContent/Syccess
79             Pull request and additional contributors are welcome
80              
81             Issue Tracker
82              
83             http://github.com/SyContent/Syccess/issues
84              
85             =cut
86              
87             =head1 AUTHOR
88              
89             Torsten Raudssus <torsten@raudss.us>
90              
91             =head1 COPYRIGHT AND LICENSE
92              
93             This software is copyright (c) 2014 by Torsten Raudssus.
94              
95             This is free software; you can redistribute it and/or modify it under
96             the same terms as the Perl 5 programming language system itself.
97              
98             =cut