Acme-Honkidasu
view release on metacpan or search on metacpan
lib/Acme/Honkidasu.pm view on Meta::CPAN
use Time::Piece ();
our $LIST_HONKIDASU = [
qw/
åã£ç«¯ããé£ã°ãã¨å¾ã§ã°ã¦ããæ¥æããæ¬æ°ãåºãã
ã¾ã ã¾ã å¯ããããã§ã¯ããæ°ãåºãªããæ¥æããæ¬æ°åºãã
年度ã®çµããã§ã¿ã¤ãã³ã°ãæªããæ¥æããæ¬æ°ãåºãã
å£ç¯ã®å¤ããç®ã¯ä½èª¿ãå´©ãããããæ¥æããæ¬æ°ãåºãã
åºåãã®è¯ãï¼æãéãã¦ãã¾ã£ããæ¥æããæ¬æ°ãåºãã
æ¢
é¨ã§æ°åãè½ã¡è¾¼ããæ¢
鍿ãã®æ¥æããæ¬æ°ãåºãã
ããããã©ãã©ãæ°æ¸©ã䏿ãã¦ãããä½å温åã®çºæ¥æããæ¬æ°ãåºãã
æããã¦æ°åããããããæ¥æããæ¬æ°ãåºãã
ä¼ã¿ãã±ãæããªããç¡çãã¦ã广ãç¡ãã®ã§æ¥æããæ¬æ°ãåºãã
ä¸éåç«¯ãªææãããã¯éä¼ã®æãæ¥æããæ¬æ°ãåºãã
æ¥ã«å·ãã¦ãããããããæããç¡çã¯ç¦ç©ãæ¥æããæ¬æ°ãåºãã
ããä»å¹´ã¯çµãããä»å¹´ã¯ãã£ã³ã¹ãç¡ãã£ããæ¥å¹´ããæ¬æ°åºãã
/
];
our $LIST_HONKIDASU_POSITIVE = [
qw/
å¹´ã®åãã ãã¹ã¿ã¼ãããã·ã¥ã§æ¬æ°åºã
ï¼æã¯çãããç¡é§ã«ããªãããã«æ¬æ°åºã
年度ã®å¤ããç®ã ããæå¾ã®è¿½ãè¾¼ã¿ã§æ¬æ°åºã
æ¥ã¯å¿æ©ä¸è»¢æ°ããç°å¢ã«æ©ãæ
£ããããã«æ¬æ°åºã
è½ã¡è¾¼ã¿ãããææã ããæ²¹æããªãããã«ãæ¬æ°åºã
ä»ã¯æ¢
鍿æã ããããä»ã®äººã«å·®ãã¤ããããã«æ¬æ°åºã
ã«ã©ã£ã¨ãã天æ°ã§æ´»åãã¿ãªããããããä»ã¾ã§ä»¥ä¸ã«æ¬æ°åºã
æãã§æ°ãããã¿ãã¡ã ãã©æè§çä¼ã¿ãããä»ã ããããæ¬æ°åºã
æ°æ¸©ãè½ã¡çãã¦æ´»åããããææã«ãªã£ã¦ãããããããå
ãæ¬æ°åºã
å¯ããªãå¹´æ«ãããåã«é¢åãªãã¨ã¯çä»ãã¦ããããã¨æãããæ¬æ°åºã
å·ãã¦ãããã©ä½è£ã®ããå¹´æ«ãããããè¿ããããã«ä»ã®å
ããæ¬æ°åºã
ä»å¹´ã®ç· ãã ããããæå¾ã¾ã§æ°ãæããã«ä»å¹´ãï¼å¹´ã«ããããã«æ¬æ°åºã
/
];
our $DETERMINE = sub {
my $time = shift;
my $list = shift;
my $idx = ($time->mon % scalar(@$list)) - 1;
chomp(my $msg = $list->[$idx]);
return $msg;
};
sub import { shift; @_ = ('Time::Piece', @_); goto &Time::Piece::import }
}
{
package # hide from PAUSE
Time::Piece;
use POSIX::strftime::GNU;
BEGIN {
no strict 'refs';
no warnings "redefine";
my $orig_time_piece_strftime = \&Time::Piece::strftime;
*{'Time::Piece::strftime'} = sub {
my ($self, $format) = @_;
$format =~ s/%%/%%%%/g if ($format);
my $str = POSIX::strftime($format, CORE::localtime $self->epoch);
$str
=~ s/((%*)%(\(|\)))/(length($2) % 2) ? $1 : $2 . $self->honkidasu( ($3 eq ')') ? 1 : 0 )/ge;
$str =~ s/%%/%/g;
return $str;
};
}
sub honkidasu {
my $self = shift;
my $positive = shift;
my $list
= ($positive)
? $Acme::Honkidasu::LIST_HONKIDASU_POSITIVE
: $Acme::Honkidasu::LIST_HONKIDASU;
return (@$list) ? $Acme::Honkidasu::DETERMINE->($self, $list) : '';
}
}
1;
__END__
=encoding utf-8
=head1 NAME
Acme::Honkidasu - æ¬æ°åºãã³ãã
=head1 SYNOPSIS
use 5.010;
binmode STDOUT, 'utf8';
use Acme::Honkidasu;
my $time = localtime;
say $time->honkidasu;
say $time->strftime('%F %(');
=head1 DESCRIPTION
Acme::Honkidasu is æ¬æ°åºãã
=head1 METHODS
=head2 honkidasu
use Acme::Honkidasu;
my $time = localtime;
say $time->honkidasu;
say $time->honkidasu(1); # positive
æ¬æ°åºãã
=head1 EXTEND strftime
use Acme::Honkidasu;
my $time = localtime;
say $time->strftime('%F %(');
say $time->strftime('%F %)'); # positive
add conversion specifier character '%(' to æ¬æ°åºãã
=head1 EXAMPLES
( run in 2.664 seconds using v1.01-cache-2.11-cpan-800906f7e73 )