File Coverage

blib/lib/YAPC/Russia.pm
Criterion Covered Total %
statement 37 39 94.8
branch 5 6 83.3
condition n/a
subroutine 9 10 90.0
pod 3 3 100.0
total 54 58 93.1


line stmt bran cond sub pod time code
1             package YAPC::Russia;
2             $YAPC::Russia::VERSION = '3.0.0';
3             # ABSTRACT: Perl conference YAPC::Russia
4              
5              
6 1     1   16311 use strict;
  1         2  
  1         25  
7 1     1   3 use warnings FATAL => 'all';
  1         1  
  1         32  
8 1     1   495 use utf8;
  1         8  
  1         3  
9 1     1   486 use open qw(:std :utf8);
  1         814  
  1         4  
10              
11 1     1   112 use Carp;
  1         1  
  1         62  
12              
13 1     1   441 use Class::Date qw(date);
  1         12035  
  1         6  
14              
15              
16              
17             sub new {
18 3     3 1 1651 my ($class, %params) = @_;
19              
20 3         4 my $self = {};
21 3         4 bless $self, $class;
22              
23 3         9 $self->{_year} = delete $params{year};
24 3 100       19 croak 'No "year"' if not defined $self->{_year};
25              
26 2 50       5 croak 'Got unknown params: ' . join(', ', keys %params) if %params;
27              
28 2         4 $self->{_data} = $self->_get_data_for_year($self->{_year});
29              
30 1         3 return $self;
31             }
32              
33              
34             sub get_dates {
35 1     1 1 3 my ($self) = @_;
36              
37 1         2 my @dates;
38 1         1 foreach my $d (@{$self->{_data}->{dates}}) {
  1         3  
39 2         291 push @dates, date($d);
40             }
41              
42 1         153 return @dates;
43             }
44              
45              
46             sub get_place {
47 0     0 1 0 my ($self) = @_;
48              
49 0         0 return $self->{_data}->{place};
50             }
51              
52             sub _get_data_for_year {
53 2     2   3 my ($self, $year) = @_;
54              
55 2         21 my %data = (
56             2014 => {
57             dates => [qw(2014-06-13 2014-06-14)],
58             place => {
59             city => 'Saint Petersburg',
60             name_ru => 'Место Роста',
61             address_ru => 'Курляндская, дом 5',
62             site => 'http://mestorosta.biz',
63             phone => '+7 812 648-13-81',
64             foursquare => 'https://foursquare.com/v/%D0%BC%D0%B5%D1%81%D1%82%D0%BE-%D1%80%D0%BE%D1%81%D1%82%D0%B0/50fe895ce4b0382948fd8148',
65             }
66             },
67             2015 => {
68             dates => [qw(2015-05-16 2015-05-17)],
69             place => {
70             city => 'Moscow',
71             name_ru => 'Mail.ru',
72             address_ru => 'Ленинградский проспект 39, стр. 79',
73             foursquare => 'https://foursquare.com/v/mailru-hq/4b980acdf964a520532835e3',
74             }
75             },
76             2016 => {
77             dates => [qw(2016-06-25)],
78             place => {
79             city => 'Moscow',
80             name_ru => 'Mail.ru',
81             address_ru => 'Ленинградский проспект 39, стр. 79',
82             foursquare => 'https://foursquare.com/v/mailru-hq/4b980acdf964a520532835e3',
83             }
84             },
85             );
86              
87 2 100       5 if (exists $data{$year}) {
88 1         4 return $data{$year};
89             } else {
90 1         8 croak 'Sorry, no data for year "' . $year . '"';
91             }
92             }
93              
94             1;
95              
96             __END__