| line | stmt | bran | cond | sub | pod | time | code | 
| 1 |  |  |  |  |  |  | package WWW::Connpass::Event::Waitlist; | 
| 2 | 1 |  |  | 1 |  | 5 | use strict; | 
|  | 1 |  |  |  |  | 2 |  | 
|  | 1 |  |  |  |  | 21 |  | 
| 3 | 1 |  |  | 1 |  | 4 | use warnings; | 
|  | 1 |  |  |  |  | 1 |  | 
|  | 1 |  |  |  |  | 333 |  | 
| 4 |  |  |  |  |  |  |  | 
| 5 | 0 |  |  | 0 |  |  | sub _method { die 'this is abstruct method' } | 
| 6 |  |  |  |  |  |  |  | 
| 7 |  |  |  |  |  |  | sub new { | 
| 8 | 0 |  |  | 0 | 0 |  | my ($class, %args) = @_; | 
| 9 | 0 | 0 |  |  |  |  | die "$class is abstract class" if $class eq __PACKAGE__; | 
| 10 |  |  |  |  |  |  |  | 
| 11 |  |  |  |  |  |  | # assertion | 
| 12 | 0 | 0 |  |  |  |  | if (exists $args{method}) { | 
| 13 | 0 | 0 |  |  |  |  | $args{method} eq $class->_method | 
| 14 |  |  |  |  |  |  | or die "Invalid method: $args{method}"; | 
| 15 |  |  |  |  |  |  | } | 
| 16 |  |  |  |  |  |  | else { | 
| 17 | 0 |  |  |  |  |  | $args{method} = $class->_method; | 
| 18 |  |  |  |  |  |  | } | 
| 19 |  |  |  |  |  |  |  | 
| 20 | 0 |  |  |  |  |  | return bless \%args => $class; | 
| 21 |  |  |  |  |  |  | } | 
| 22 |  |  |  |  |  |  |  | 
| 23 |  |  |  |  |  |  | sub inflate { | 
| 24 | 0 |  |  | 0 | 0 |  | my ($class, %args) = @_; | 
| 25 | 0 |  |  |  |  |  | $class .= '::'.ucfirst $args{method}; | 
| 26 | 0 |  |  |  |  |  | Module::Load::load($class); | 
| 27 | 0 |  |  |  |  |  | return $class->new(%args); | 
| 28 |  |  |  |  |  |  | } | 
| 29 |  |  |  |  |  |  |  | 
| 30 | 0 |  |  | 0 | 0 |  | sub raw_data { +{%{$_[0]}} } | 
|  | 0 |  |  |  |  |  |  | 
| 31 |  |  |  |  |  |  |  | 
| 32 | 0 |  |  | 0 | 0 |  | sub is_new { not exists shift->{id} } | 
| 33 |  |  |  |  |  |  |  | 
| 34 | 0 |  |  | 0 | 0 |  | sub cancelled_count          { shift->{cancelled_count}           } | 
| 35 | 0 |  |  | 0 | 0 |  | sub id                       { shift->{id}                        } | 
| 36 | 0 |  |  | 0 | 0 |  | sub join_fee                 { shift->{join_fee}                  } | 
| 37 | 0 |  |  | 0 | 0 |  | sub lottery_count            { shift->{lottery_count}             } | 
| 38 | 0 |  |  | 0 | 0 |  | sub max_participants         { shift->{max_participants}          } | 
| 39 | 0 |  |  | 0 | 0 |  | sub method                   { shift->{method}                    } | 
| 40 | 0 |  |  | 0 | 0 |  | sub name                     { shift->{name}                      } | 
| 41 | 0 |  |  | 0 | 0 |  | sub participants_count       { shift->{participants_count}        } | 
| 42 | 0 |  |  | 0 | 0 |  | sub place_fee                { shift->{place_fee}                 } | 
| 43 | 0 |  |  | 0 | 0 |  | sub total_participants_count { shift->{total_participants_count}  } | 
| 44 | 0 |  |  | 0 | 0 |  | sub waitlist_count           { shift->{waitlist_count}            } | 
| 45 |  |  |  |  |  |  |  | 
| 46 |  |  |  |  |  |  | 1; | 
| 47 |  |  |  |  |  |  | __END__ |