Changeset 10638 for lang/perl/WebService-Simple-Google-Chart/trunk/lib
- Timestamp:
- 04/28/08 13:36:06 (7 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/WebService-Simple-Google-Chart/trunk/lib/WebService/Simple/Google/Chart.pm
r10585 r10638 12 12 13 13 sub get_url { 14 my ( $self, $param ) = @_; 15 my ( @label, @value, $data, $total_count ); 16 $data = $param->{data}; 17 $total_count = 0; 18 map { $total_count += $data->{$_} } keys %$data; 19 foreach my $key ( keys %{ $param->{data} } ) { 20 push( @label, $key ); 21 my $percent = int( $param->{data}->{$key} / $total_count * 100 + 0.5 ); 22 push( @value, $percent ); 23 } 24 $self->{request_param}->{chs} = $param->{size}; 25 $self->{request_param}->{cht} = $param->{type}; 26 $self->{request_param}->{chl} = join( "|", @label ); 27 $self->{request_param}->{chd} = "t:" . join( ",", @value ); 14 my ( $self, $param, $data ) = @_; 15 $self->{request_param} = $param; 16 $self->_set_data_param($data); 28 17 return $self->request_url( $self->{request_param} ); 29 18 } 30 19 31 20 sub render_to_file { 32 my $self = shift; 33 my $param = shift; 34 my $filename; 35 if ( ref $param eq 'Hash' ) { 36 $self->{request_param} = $param; 21 my ($self,$filename,$param,$data) = @_; 22 if($param){ 23 $self->{request_param} = $param; 24 $self->_set_data_param($data); 37 25 } 38 else { 39 $filename = $param; 40 } 41 $self->SUPER::get( $self->{request_param}, ":content_file" => $filename ); 26 $self->SUPER::get( $self->{request_param} , ":content_file" => $filename ); 42 27 } 43 28 44 sub _total_value { 45 my ( $self, $data ) = @_; 46 my @values; 47 map { push( @values, $data->{$_} ) } keys %$data; 48 @values = sort { $b <=> $a } @values; 49 return $values[0]; 29 sub _set_data_param { 30 my ($self, $data) = @_; 31 my ( @label, @value, $total_count ); 32 $total_count = 0; 33 map { $total_count += $data->{$_} } keys %$data; 34 foreach my $key ( keys %$data ) { 35 push( @label, $key ); 36 my $percent = int( $data->{$key} / $total_count * 100 + 0.5 ); 37 push( @value, $percent ); 38 } 39 my $data_param = {}; 40 $self->{request_param}->{chl} = join( "|", @label ); 41 $self->{request_param}->{chd} = "t:" . join( ",", @value ); 50 42 } 51 43 … … 56 48 =head1 NAME 57 49 58 WebService::Simple::Google::Chart - Get Google Chart URL and File50 WebService::Simple::Google::Chart - Get Google Chart URL and image file 59 51 60 52 =head1 SYNOPSIS … … 63 55 64 56 my $chart = WebService::Simple::Google::Chart->new; 65 my $data = { foo => 200, bar => 130, hoge => 70 };66 57 my $url = $chart->get_url( 67 58 { 68 59 size => "250x100", 69 60 type => "p3", 70 data => $data,71 }61 }, 62 { foo => 200, bar => 130, hoge => 70 }, 72 63 ); 73 64 print $url;
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)