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