File Coverage

blib/lib/Acme/Honkidasu.pm
Criterion Covered Total %
statement 38 38 100.0
branch 9 10 90.0
condition n/a
subroutine 11 11 100.0
pod 0 1 0.0
total 58 60 96.6


line stmt bran cond sub pod time code
1 3     3   44957 use strict;
  3         6  
  3         72  
2 3     3   15 use warnings;
  3         5  
  3         95  
3              
4             {
5             package Acme::Honkidasu;
6 3     3   481 use utf8;
  3         21  
  3         13  
7             our $VERSION = '0.04';
8              
9 3     3   1382 use Time::Piece ();
  3         26163  
  3         462  
10              
11             our $LIST_HONKIDASU = [
12             qw/
13             初っ端から飛ばすと後でばてる。来月から本気を出す。
14             まだまだ寒い。これではやる気が出ない。来月から本気出す。
15             年度の終わりでタイミングが悪い。来月から本気を出す。
16             季節の変わり目は体調を崩しやすい。来月から本気を出す。
17             区切りの良い4月を逃してしまった。来月から本気を出す。
18             梅雨で気分が落ち込む。梅雨明けの来月から本気を出す。
19             これからどんどん気温が上昇していく。体力温存の為来月から本気を出す。
20             暑すぎて気力がそがれる。来月から本気を出す。
21             休みボケが抜けない。無理しても効果が無いので来月から本気を出す。
22             中途半端な時期。ここは雌伏の時。来月から本気を出す。
23             急に冷えてきた。こういう時こそ無理は禁物。来月から本気を出す。
24             もう今年は終わり。今年はチャンスが無かった。来年から本気出す。
25             /
26             ];
27             our $LIST_HONKIDASU_POSITIVE = [
28             qw/
29             年の初めだしスタートダッシュで本気出す
30             2月は短いから無駄にしないために本気出す
31             年度の変わり目だから最後の追い込みで本気出す
32             春は心機一転新しい環境に早く慣れるために本気出す
33             落ち込みやすい時期だから油断しないためにも本気出す
34             今は梅雨時期だからこそ他の人に差をつけるために本気出す
35             カラっといい天気で活力がみなぎるからこそ今まで以上に本気出す
36             暑さで気がたるみがちだけど折角盆休みがある今だからこそ本気出す
37             気温も落ち着いて活動しやすい時期になってきたしこれから先も本気出す
38             寒くなる年末がくる前に面倒なことは片付けておきたいと思うから本気出す
39             冷えてきたけど余裕のある年末をこれから迎えるために今の内から本気出す
40             今年の締めだからこそ最後まで気を抜かずに今年を1年にするために本気出す
41             /
42             ];
43              
44             our $DETERMINE = sub {
45             my $time = shift;
46             my $list = shift;
47             my $idx = ($time->mon % scalar(@$list)) - 1;
48             chomp(my $msg = $list->[$idx]);
49             return $msg;
50             };
51              
52 3     3   25 sub import { shift; @_ = ('Time::Piece', @_); goto &Time::Piece::import }
  3         10  
  3         12  
53             }
54              
55             {
56             package # hide from PAUSE
57             Time::Piece;
58 3     3   1226 use POSIX::strftime::GNU;
  3         18740  
  3         14  
59              
60             BEGIN {
61 3     3   112 no strict 'refs';
  3         6  
  3         64  
62 3     3   13 no warnings "redefine";
  3         5  
  3         513  
63 3     3   10 my $orig_time_piece_strftime = \&Time::Piece::strftime;
64 3         219 *{'Time::Piece::strftime'} = sub {
65 72     72   170 my ($self, $format) = @_;
66 72 50       300 $format =~ s/%%/%%%%/g if ($format);
67 72         221 my $str = POSIX::strftime($format, CORE::localtime $self->epoch);
68 72         4547 $str
69 84 100       493 =~ s/((%*)%(\(|\)))/(length($2) % 2) ? $1 : $2 . $self->honkidasu( ($3 eq ')') ? 1 : 0 )/ge;
    100          
70 72         241 $str =~ s/%%/%/g;
71 72         306 return $str;
72 3         12 };
73             }
74              
75             sub honkidasu {
76 109     109 0 17777 my $self = shift;
77 109         172 my $positive = shift;
78 109 100       204 my $list
79             = ($positive)
80             ? $Acme::Honkidasu::LIST_HONKIDASU_POSITIVE
81             : $Acme::Honkidasu::LIST_HONKIDASU;
82 109 100       294 return (@$list) ? $Acme::Honkidasu::DETERMINE->($self, $list) : '';
83             }
84             }
85              
86             1;
87             __END__