/
Catalyst.pm
54 lines (37 loc) · 924 Bytes
/
Catalyst.pm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package WWW::Tracking::Data::Plugin::Catalyst;
use strict;
use warnings;
our $VERSION = '0.02';
1;
package WWW::Tracking::Data;
use Carp::Clan 'croak';
sub from_catalyst {
my $self = shift;
my $args = shift;
my $c = delete $args->{'c'} or croak '$c is mandatory argument';
my %headers_args = %{$args};
my $req = $c->request;
return $self->from(
'headers' => {
'headers' => $req->headers,
'request_uri' => $req->uri,
'remote_ip' => $req->address,
%headers_args,
},
);
}
1;
__END__
=head1 NAME
WWW::Tracking::Data::Plugin::Catalyst - create C<WWW::Tracking::Data> object from Catalyst::Engine C<$c>
=head1 SYNOPSIS
my $wt = WWW::Tracking->new->from(
'catalyst' => {
'c' => $c,
'visitor_cookie_name' => '__vcid',
},
);
=head1 DESCRIPTION
Takes L<Catalyst::Engine> C<$c> object and extract data for tracking to
generate L<WWW::Tracking::Data> object from it.
=cut