File Coverage

blib/lib/Net/Amazon/S3/Request/Role/Query/Param.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: request query params role
2             $Net::Amazon::S3::Request::Role::Query::Param::VERSION = '0.991';
3             use MooseX::Role::Parameterized;
4 99     99   49861  
  99         308  
  99         987  
5             parameter param => (
6             is => 'ro',
7             isa => 'Str',
8             required => 1,
9             );
10              
11             parameter query_param => (
12             is => 'ro',
13             isa => 'Str',
14             lazy => 1,
15             default => sub { $_[0]->param },
16             );
17              
18             parameter constraint => (
19             is => 'ro',
20             isa => 'Str',
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 $param = $params->param;
40             my $query_param = $params->query_param;
41              
42             has $param => (
43             is => 'ro',
44             isa => $params->constraint,
45             required => $params->required,
46             (default => $params->default) x!! defined $params->default,
47             );
48              
49             around _request_query_params => eval <<"INLINE";
50             sub {
51             my (\$inner, \$self) = \@_;
52             my \$value = \$self->$param;
53              
54             return (\$self->\$inner, (q[$query_param] => \$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::Query::Param - request query params 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