File Coverage

blib/lib/Dancer/Plugin/EmptyGIF.pm
Criterion Covered Total %
statement 12 12 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 16 16 100.0


line stmt bran cond sub pod time code
1             package Dancer::Plugin::EmptyGIF;
2              
3             =head1 NAME
4              
5             Dancer::Plugin::EmptyGIF - Quick empty GIF response
6              
7             =head1 SYNOPSIS
8              
9             use Dancer;
10             use Dancer::Plugin::EmptyGIF;
11            
12             get '/tracking/pixel.gif' => sub {
13             # do something with params
14             return empty_gif;
15             }
16              
17             =head1 METHODS
18              
19             =head2 empty_gif
20              
21             This will set your set your current request response to be an empty
22             gif, this means, it will return binary data for the image and
23             set the appropriate headers. You should always "return empty_gif".
24              
25             =head1 WHY
26              
27             An empty gif response is specially useful when you're building a
28             webservice that processes all the URL and/or query string parameters
29             and at the end, an empty gif needs to be returned to the client.
30             This a tracking or reporting pixel. Once the request has reached your
31             application code, it's better not to do any more redirections and
32             quickly return the empty pixel from within your code.
33              
34             =head1 AUTHOR
35              
36             David Moreno C<< >>
37              
38             =head1 CODE
39              
40             L
41              
42             =head1 LICENSE
43              
44             Copyright, David Moreno, 2012
45              
46             This program is free software; you can redistribute it
47             and/or modify it under the same terms as Perl itself.
48              
49             =cut
50              
51 4     4   1124093 use Dancer ':syntax';
  4         391307  
  4         23  
52 4     4   5447 use Dancer::Plugin;
  4         5947  
  4         334  
53 4     4   5131 use MIME::Base64;
  4         3510  
  4         2422  
54              
55             our $VERSION = '0.3';
56              
57             register empty_gif => sub {
58 4     4   8874 header('Content-Type' => 'image/gif');
59 4         205 header('Content-Disposition' => 'inline; filename="empty.gif"');
60 4         280 decode_base64('R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
61             };
62              
63             register_plugin;
64             1;