File Coverage

blib/lib/Net/Amazon/S3/Request/Role/HTTP/Header.pm
Criterion Covered Total %
statement 3 3 100.0
branch n/a
condition n/a
subroutine 1 1 100.0
pod n/a
total 4 4 100.0


line stmt bran cond sub pod time code
1             # ABSTRACT: HTTP Header Role
2             $Net::Amazon::S3::Request::Role::HTTP::Header::VERSION = '0.991';
3             use MooseX::Role::Parameterized;
4 99     99   51127  
  99         249  
  99         958  
5             parameter name => (
6             is => 'ro',
7             isa => 'Str',
8             required => 1,
9             );
10              
11             parameter header => (
12             is => 'ro',
13             isa => 'Str',
14             );
15              
16             parameter constraint => (
17             is => 'ro',
18             isa => 'Str',
19             init_arg => 'isa',
20             required => 1,
21             );
22              
23             parameter required => (
24             is => 'ro',
25             isa => 'Bool',
26             default => 0,
27             );
28              
29             parameter default => (
30             is => 'ro',
31             isa => 'Str|CodeRef',
32             required => 0,
33             );
34              
35             role {
36             my ($params) = @_;
37              
38             my $name = $params->name;
39             my $header = $params->header;
40              
41             has $name => (
42             is => 'ro',
43             isa => $params->constraint,
44             (init_arg => undef) x!! $name =~ m/^_/,
45             required => $params->required,
46             (default => $params->default) x!! defined $params->default,
47             );
48              
49             around _request_headers => eval <<"INLINE";
50             sub {
51             my (\$inner, \$self) = \@_;
52             my \$value = \$self->$name;
53              
54             return (\$self->\$inner, (q[$header] => \$value) x!! defined \$value);
55             };
56             INLINE
57             };
58              
59             1;
60              
61              
62             =pod
63              
64             =encoding UTF-8
65              
66             =head1 NAME
67              
68             Net::Amazon::S3::Request::Role::HTTP::Header - HTTP Header Role
69              
70             =head1 VERSION
71              
72             version 0.991
73              
74             =head1 AUTHOR
75              
76             Branislav ZahradnĂ­k <barney@cpan.org>
77              
78             =head1 COPYRIGHT AND LICENSE
79              
80             This software is copyright (c) 2022 by Amazon Digital Services, Leon Brocard, Brad Fitzpatrick, Pedro Figueiredo, Rusty Conover, Branislav ZahradnĂ­k.
81              
82             This is free software; you can redistribute it and/or modify it under
83             the same terms as the Perl 5 programming language system itself.
84              
85             =cut