File Coverage

lib/Kwiki/Weather.pm
Criterion Covered Total %
statement 7 9 77.7
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 10 12 83.3


line stmt bran cond sub pod time code
1             package Kwiki::Weather;
2 1     1   42634 use strict;
  1         1  
  1         42  
3 1     1   6 use warnings;
  1         2  
  1         120  
4              
5 1     1   563 use Kwiki::Plugin -Base;
  0            
  0            
6             use mixin 'Kwiki::Installer';
7              
8             our $VERSION = '0.05';
9              
10             const class_title => 'Weather Report';
11             const class_id => 'weather';
12             const cgi_class => 'Kwiki::Weather::CGI';
13             field 'geo_weather';
14              
15             sub register {
16             my $registry = shift;
17             $registry->add( action => 'weather' );
18             $registry->add(
19             toolbar => 'weather',
20             template => 'weather_button.html'
21             );
22             $registry->add( wafl => weather => 'Kwiki::Weather::Wafl' );
23             $registry->add( prerequisite => 'zipcode' );
24             }
25              
26             sub weather {
27             my $zipcode = $self->cgi->zipcode;
28             return $self->render_screen( content_pane => 'weather_error.html' )
29             unless $zipcode =~ /^\d{5}$/;
30             require Geo::Weather;
31             my $weather = Geo::Weather->new;
32             $weather->get_weather($zipcode);
33             $self->geo_weather($weather);
34             $self->render_screen;
35             }
36              
37             package Kwiki::Weather::Wafl;
38             use base 'Spoon::Formatter::WaflPhrase';
39              
40             sub to_html {
41             my $zipcode = $self->arguments;
42             return $self->wafl_error
43             unless $zipcode =~ /^\d{5}$/;
44             require Geo::Weather;
45             my $weather = Geo::Weather->new;
46             $weather->get_weather($zipcode);
47             $self->hub->template->process( 'weather_report.html', weather => $weather,
48             );
49             }
50              
51             package Kwiki::Weather::CGI;
52             use Kwiki::CGI -base;
53             cgi 'zipcode';
54              
55             package Kwiki::Weather;
56              
57             __DATA__