File Coverage

blib/lib/Chart/Timecard.pm
Criterion Covered Total %
statement 25 25 100.0
branch n/a
condition 3 4 75.0
subroutine 4 4 100.0
pod 1 1 100.0
total 33 34 97.0


line stmt bran cond sub pod time code
1             package Chart::Timecard;
2              
3 2     2   834 use strict;
  2         4  
  2         71  
4 2     2   10 use warnings;
  2         4  
  2         67  
5 2     2   1804 use Object::Tiny qw(times size);
  2         712  
  2         11  
6              
7             our $VERSION = '0.02';
8              
9             sub url {
10 3     3 1 31 my $self = shift;
11              
12 3         4 my @times = @{ $self->times };
  3         101  
13              
14 3         51 my $xy = {};
15 3         5 my (@x, @y, @z);
16              
17 3         6 for my $dt (@times) {
18 300         2373 $xy->{ $dt->hour }{ $dt->wday - 1 }++;
19             }
20              
21 3         26 for my $day (0..6) {
22 21         36 for my $hour (0..23) {
23 504   100     1552 my $size = $xy->{$hour}{$day} || 0;
24 504         688 push @x, $hour;
25 504         607 push @y, $day;
26 504         698 push @z, $size;
27             }
28             }
29              
30 3         6 local $" = ",";
31 3   50     91 my $chart_size = $self->size || "900x300";
32 3         378 return "http://chart.apis.google.com/chart?cht=s&chs=${chart_size}&chxt=x,y&chxl=0:||0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23||1:||Sun|Mon|Tue|Wed|Thu|Fri|Sat|&chm=o,333333,1,1.0,25,0&chds=-1,24,-1,7,0,20&chd=t:@x|@y|@z";
33             }
34              
35             1;
36              
37             __END__