Acme-Honkidasu

 view release on metacpan or  search on metacpan

LICENSE  view on Meta::CPAN

MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

                     END OF TERMS AND CONDITIONS

        Appendix: How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to humanity, the best way to achieve this is to make it

README.md  view on Meta::CPAN

    binmode STDOUT, ":utf8";

    use Acme::Honkidasu;
    $Acme::Honkidasu::DETERMINE = sub {
        my $time = shift;
        my $list = shift;
        my $idx = $time->hour % scalar(@$list);
        chomp( my $msg = $list->[$idx] );
        return $msg;
    };
    $Acme::Honkidasu::LIST_HONKIDASU = [<DATA>];
    say localtime->honkidasu;
    say localtime->strftime('%(');

    __DATA__
    新しい1日。さあはじまる。今日から本気出す。
    まだまだ時間はたっぷりある。焦りは禁物。2時から本気出す。
    YouTube眺めてたら時間のスピードおかしくなる。あぶなかった。3時から本気出す。。
    頭の中にやる気がどんどん湧いてくる。でもまだ早い。はやる気持ちを抑えて、4時から本気出す。
    この時間に起きてる自分が心配だ。体調管理も必要。ひと呼吸おいて、5時から本気出す。
    きっとみんなはまだ寝てる。慌ててはいけない。6時から本気出す。
    眠たいのではない。動き出すのが面倒くさい。あきらめも大切。7時から本気出す。
    夜7時頃の10分間を今くつろぐ時間にもってきてほしい。しかたないから8時から本気出す。
    ぼーっとしてるんじゃない。今日のことを考えてる。頭を整理して9時から本気出す。
    朝から飛ばし過ぎはよくない。大丈夫、ちゃんと計算してる。10時から本気出す。

lib/Acme/Honkidasu.pm  view on Meta::CPAN

  binmode STDOUT, ":utf8";

  use Acme::Honkidasu;
  $Acme::Honkidasu::DETERMINE = sub {
      my $time = shift;
      my $list = shift;
      my $idx = $time->hour % scalar(@$list);
      chomp( my $msg = $list->[$idx] );
      return $msg;
  };
  $Acme::Honkidasu::LIST_HONKIDASU = [<DATA>];
  say localtime->honkidasu;
  say localtime->strftime('%(');

  __DATA__
  新しい1日。さあはじまる。今日から本気出す。
  まだまだ時間はたっぷりある。焦りは禁物。2時から本気出す。
  YouTube眺めてたら時間のスピードおかしくなる。あぶなかった。3時から本気出す。。
  頭の中にやる気がどんどん湧いてくる。でもまだ早い。はやる気持ちを抑えて、4時から本気出す。
  この時間に起きてる自分が心配だ。体調管理も必要。ひと呼吸おいて、5時から本気出す。
  きっとみんなはまだ寝てる。慌ててはいけない。6時から本気出す。
  眠たいのではない。動き出すのが面倒くさい。あきらめも大切。7時から本気出す。
  夜7時頃の10分間を今くつろぐ時間にもってきてほしい。しかたないから8時から本気出す。
  ぼーっとしてるんじゃない。今日のことを考えてる。頭を整理して9時から本気出す。
  朝から飛ばし過ぎはよくない。大丈夫、ちゃんと計算してる。10時から本気出す。

t/02_list.t  view on Meta::CPAN

use strict;
use warnings;
use utf8;
binmode Test::More->builder->$_, ":utf8" for qw/output failure_output todo_output/;

use Test::More tests => 36;
use Test::More;

use Acme::Honkidasu;

my @list = <DATA>;
$Acme::Honkidasu::LIST_HONKIDASU = \@list;
for my $i (1..12) {
    my $t = Time::Piece->strptime(sprintf('%02d', $i), '%m');
    chomp( my $msg = $list[ ( $i % scalar(@list) ) - 1 ] );
    cmp_ok $t->honkidasu, 'eq', $msg;
    cmp_ok $t->strftime('%('), 'eq', $msg;
}

$Acme::Honkidasu::LIST_HONKIDASU = [];
for my $i (1..12) {
    my $t = Time::Piece->strptime(sprintf('%02d', $i), '%m');
    chomp( my $msg = $list[ ( $i % scalar(@list) ) - 1 ] );
    ok ! $t->honkidasu;
}

done_testing;

__DATA__
ほげ
ふが
ぴよ
ふー



( run in 0.960 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )