File Coverage

lib/MooseX/Attribute/ValidateWithException/Exception.pm
Criterion Covered Total %
statement 11 13 84.6
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 16 18 88.8


line stmt bran cond sub pod time code
1 1     1   1073 use 5.006; # warnings
  1         3  
  1         34  
2 1     1   5 use strict;
  1         2  
  1         60  
3 1     1   4 use warnings;
  1         2  
  1         61  
4              
5             package MooseX::Attribute::ValidateWithException::Exception;
6             BEGIN {
7 1     1   31 $MooseX::Attribute::ValidateWithException::Exception::AUTHORITY = 'cpan:KENTNL';
8             }
9             {
10             $MooseX::Attribute::ValidateWithException::Exception::VERSION = '0.3.1';
11             }
12              
13             # ABSTRACT: An Exception object to represent "Normal" moose validation failures.
14              
15 1     1   373 use Moose qw( extends has );
  0            
  0            
16              
17             #with 'StackTrace::Auto';
18              
19             extends 'Throwable::Error';
20              
21             has 'attribute_name' => (
22             isa => 'Str',
23             required => 1,
24             is => 'ro',
25             );
26              
27             has 'data' => (
28             is => 'ro',
29             required => 1,
30             );
31              
32             has 'constraint_message' => (
33             is => 'ro',
34             required => 1,
35             );
36              
37             # has 'constraint' => (
38             # is => 'ro',
39             # required => 1,
40             #);
41              
42             has 'constraint_name' => (
43             isa => 'Str',
44             is => 'ro',
45             required => 1,
46             );
47              
48             has message => (
49             isa => 'Str',
50             is => 'ro',
51             lazy => 1,
52             builder => '_generate_message',
53             );
54              
55             sub _generate_message {
56             my ($self) = shift;
57             return sprintf 'Attribute (%s) does not pass the type constraint because: %s', $self->attribute_name, $self->constraint_message;
58             }
59              
60             #with 'StackTrace::Auto';
61              
62             __PACKAGE__->meta->make_immutable( inline_constructor => 0 );
63             no Moose;
64             1;
65              
66             __END__
67              
68             =pod
69              
70             =encoding UTF-8
71              
72             =head1 NAME
73              
74             MooseX::Attribute::ValidateWithException::Exception - An Exception object to represent "Normal" moose validation failures.
75              
76             =head1 VERSION
77              
78             version 0.3.1
79              
80             =head1 AUTHOR
81              
82             Kent Fredric <kentnl@cpan.org>
83              
84             =head1 COPYRIGHT AND LICENSE
85              
86             This software is copyright (c) 2014 by Kent Fredric <kentnl@cpan.org>.
87              
88             This is free software; you can redistribute it and/or modify it under
89             the same terms as the Perl 5 programming language system itself.
90              
91             =cut