File Coverage

blib/lib/Yukki/Web/Request.pm
Criterion Covered Total %
statement 20 22 90.9
branch n/a
condition n/a
subroutine 7 8 87.5
pod n/a
total 27 30 90.0


line stmt bran cond sub pod time code
1             package Yukki::Web::Request;
2             $Yukki::Web::Request::VERSION = '0.991_002'; # TRIAL
3              
4 1     1   14 $Yukki::Web::Request::VERSION = '0.991002';use v5.24;
  1         10  
5 1     1   6 use utf8;
  1         2  
  1         9  
6 1     1   23 use Moo;
  1         2  
  1         8  
7              
8 1     1   853 use Plack::Request;
  1         50003  
  1         33  
9 1     1   10 use Type::Utils;
  1         2  
  1         10  
10 1     1   1279 use Types::Standard qw( HashRef );
  1         3  
  1         8  
11              
12 1     1   942 use namespace::clean;
  1         6293  
  1         8  
13              
14             # ABSTRACT: Yukki request descriptor
15              
16              
17             has env => (
18             is => 'ro',
19             isa => HashRef,
20             required => 1,
21             );
22              
23              
24             has request => (
25             is => 'ro',
26             isa => class_type('Plack::Request'),
27             required => 1,
28             lazy => 1,
29             builder => '_build_request',
30             handles => [ qw(
31             address remote_host method protocol request_uri path_info path script_name scheme
32             secure body input session session_options logger cookies query_parameters
33             body_parameters parameters content raw_body uri base user headers uploads
34             content_encoding content_length content_type header referer user_agent param
35             upload
36             ) ],
37             );
38              
39             sub _build_request {
40 0     0     my $self = shift;
41 0           return Plack::Request->new($self->env);
42             }
43              
44              
45             has path_parameters => (
46             is => 'rw',
47             isa => HashRef,
48             required => 1,
49             default => sub { +{} },
50             );
51              
52             1;
53              
54             __END__
55              
56             =pod
57              
58             =encoding UTF-8
59              
60             =head1 NAME
61              
62             Yukki::Web::Request - Yukki request descriptor
63              
64             =head1 VERSION
65              
66             version 0.991_002
67              
68             =head1 DESCRIPTION
69              
70             This is an abstraction that looks astonishingly similar to L<Plack::Request>.
71              
72             =head1 ATTRIBUTES
73              
74             =head2 env
75              
76             This is the PSGI environment. Do not use.
77              
78             =head2 request
79              
80             This is the internal L<Plack::Request> object. Do not use. Use one of the methods delegated to it instead:
81              
82             address remote_host method protocol request_uri path_info path script_name scheme
83             secure body input session session_options logger cookies query_parameters
84             body_parameters parameters content raw_body uri base user headers uploads
85             content_encoding content_length content_type header referer user_agent param
86             upload
87              
88             =head2 path_parameters
89              
90             These are the variables found in the path during dispatch.
91              
92             =head1 AUTHOR
93              
94             Andrew Sterling Hanenkamp <hanenkamp@cpan.org>
95              
96             =head1 COPYRIGHT AND LICENSE
97              
98             This software is copyright (c) 2017 by Qubling Software LLC.
99              
100             This is free software; you can redistribute it and/or modify it under
101             the same terms as the Perl 5 programming language system itself.
102              
103             =cut