File Coverage

blib/lib/WebService/Simple/Google/Chart.pm
Criterion Covered Total %
statement 9 30 30.0
branch 0 2 0.0
condition n/a
subroutine 3 6 50.0
pod n/a
total 12 38 31.5


line stmt bran cond sub pod time code
1             package WebService::Simple::Google::Chart;
2 2     2   13 use strict;
  2         5  
  2         90  
3 2     2   12 use warnings;
  2         5  
  2         124  
4              
5             our $VERSION = '0.05';
6              
7 2     2   11 use base qw(WebService::Simple);
  2         4  
  2         2092  
8             __PACKAGE__->config(
9             base_url => "http://chart.apis.google.com/chart",
10             request_param => {},
11             );
12              
13             sub get_url {
14 0     0     my ( $self, $param, $data ) = @_;
15 0           $self->{request_param} = $param;
16 0           $self->_set_data_param($data);
17 0           return $self->request_url( ( params => $self->{request_param}, url => $self->{base_url} ) );
18             }
19              
20             sub render_to_file {
21 0     0     my ( $self, $filename, $param, $data ) = @_;
22 0 0         if ($param) {
23 0           $self->{request_param} = $param;
24 0           $self->_set_data_param($data);
25             }
26 0           $self->SUPER::get( $self->{request_param}, ":content_file" => $filename );
27             }
28              
29             sub _set_data_param {
30 0     0     my ($self, $data) = @_;
31 0           my ( @label, @value, $total_count );
32 0           $total_count = 0;
33 0           map { $total_count += $data->{$_} } keys %$data;
  0            
34 0           foreach my $key ( keys %$data ) {
35 0           push( @label, $key );
36 0           my $percent = int( $data->{$key} / $total_count * 100 + 0.5 );
37 0           push( @value, $percent );
38             }
39 0           my $data_param = {};
40 0           $self->{request_param}->{chl} = join( "|", @label );
41 0           $self->{request_param}->{chd} = "t:" . join( ",", @value );
42             }
43              
44             1;
45              
46             __END__