Acme-Honkidasu
view release on metacpan or search on metacpan
lib/Acme/Honkidasu.pm view on Meta::CPAN
use strict;
use warnings;
{
package Acme::Honkidasu;
use utf8;
our $VERSION = '0.04';
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
æ¬æ°åºã per hour. (default: per month)
#!/usr/bin/env perl
use strict;
use warnings;
use 5.010;
use utf8;
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__
æ°ããï¼æ¥ãããã¯ãã¾ãã仿¥ããæ¬æ°åºãã
ã¾ã ã¾ã æéã¯ãã£ã·ããããç¦ãã¯ç¦ç©ãï¼æããæ¬æ°åºãã
YouTubeçºãã¦ããæéã®ã¹ãã¼ããããããªãããã¶ãªãã£ãã3æããæ¬æ°åºããã
é ã®ä¸ã«ããæ°ãã©ãã©ãæ¹§ãã¦ãããã§ãã¾ã æ©ããã¯ããæ°æã¡ãæãã¦ãï¼æããæ¬æ°åºãã
ãã®æéã«èµ·ãã¦ãèªåãå¿é
ã ãä½èª¿ç®¡çãå¿
è¦ãã²ã¨å¼å¸ããã¦ã5æããæ¬æ°åºãã
ãã£ã¨ã¿ããªã¯ã¾ã å¯ã¦ããæ
ã¦ã¦ã¯ãããªããï¼æããæ¬æ°åºãã
ç ããã®ã§ã¯ãªããåãåºãã®ãé¢åããããããããã大åã7æããæ¬æ°åºãã
å¤ï¼æé ã®10åéãä»ãã¤ããæéã«ãã£ã¦ãã¦ã»ãããããããªãããï¼æããæ¬æ°åºãã
ã¼ã¼ã£ã¨ãã¦ãããããªãã仿¥ã®ãã¨ãèãã¦ããé ãæ´çãã¦ï¼æããæ¬æ°åºãã
æããé£ã°ãéãã¯ãããªãã大ä¸å¤«ãã¡ããã¨è¨ç®ãã¦ãã10æããæ¬æ°åºãã
ã¿ããªæããå
æ°ã ãã§ãä¹±ãããªããèªåã®ãã¼ã¹ãå®ãã11æããæ¬æ°åºãã
ããªãæ¸ã£ããæ¼ã«ä½é£ã¹ããèãã¦ããéä¸ã§ããªãã12æããæ¬æ°åºãã
æ¼ã ã飯é£ã£ã¦æ°åãåãæ¿ãã¦ã13æããæ¬æ°åºãã
飯é£ã£ã¦ããªããã£ã±ããããã§ã¯é ãã¾ãããªãã14æããæ¬æ°åºã
ããªããã£ã±ããéãéãã¦ç ããã15æããæ¬æ°åºãã
æ¬çªã¯ä»ããã ãï¼ããã¾ã§ã¯ã¦ã©ã¼ãã³ã°ã¢ããã16æããæ¬æ°åºãã
1æ¥ã®ç²ãããã¼ã¯ã«éãã¦ãããããã§ç¡çãã¦ãæå³ãç¡ãã17æããæ¬æ°ã ãã
æ¬å½ã®åè² ã¯é½ãæ®ãã¦ãããã ããæ
ã¦ãªããèªåãä¿¡ãã¦ã18æããæ¬æ°åºãã
ã¿ããªå®¶ã«å¸°ã£ã¦ãããªãã ããããã®æ°æã¡ãå¿ãç¡ã«ãã¦19æããæ¬æ°åºãã
仿¥ä¸æ¥ã®ç²ãããã¡ãã¡ã«ãã¦ããã¡ãã£ã¨æ¨ªã«ãªã£ã¦20æããæ¬æ°åºãã
ã©ã¹ãã¹ãã¼ãã«åãã¦åãæºããã21æããæ¬æ°åºãã
追ãè©°ããããªãã¨æ¬æ°ã«ãªããªãããã22æããæ¬æ°åºãã
çµããè¯ããã°å
¨ã¦è¯ãã23æããæ¬æ°åºãã
䏿¥çµããã仿¥ã¯ãã£ã³ã¹ããªãã£ããææ¥ããæ¬æ°åºãã
=head1 AUTHOR
hayajo E<lt>hayajo@cpan.orgE<gt>
=head1 LICENSE
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
( run in 0.918 second using v1.01-cache-2.11-cpan-302cb4679cc )