view release on metacpan or search on metacpan
[](https://travis-ci.org/tsucchi/p5-Acme-MilkyHolmes) [](https:/...
# NAME
Acme::MilkyHolmes - There's more than one way to do it!(SEIKAI HA HITOTSU! JANAI!!)
# SYNOPSIS
use strict;
use warnings;
use utf8;
use Acme::MilkyHolmes;
# fetch members of Milky Holmes(eg/say.pl)
my ($sherlock, $nero, $elly, $cordelia) = Acme::MilkyHolmes->members();
$sherlock->say('ã£ã¦ãªãã§ã§ããã¼');
$nero->say('åã®ãã¾ãã¾æ£ã');
$elly->say('æ¥ãããã...');
$cordelia->say('ç§ã®...ãè±ç...');
# create character instance directly
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Acme::MilkyHolmes;
my ($sherlock, $nero, $elly, $cordelia) = Acme::MilkyHolmes->members();
$sherlock->say('ã£ã¦ãªãã§ã§ããã¼');
$nero->say('åã®ãã¾ãã¾æ£ã');
$elly->say('æ¥ãããã...');
$cordelia->say('ç§ã®...ãè±ç...');
eg/say_feathers.pl view on Meta::CPAN
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Acme::MilkyHolmes qw($MilkyHolmesFeathers);
my ($kazumi, $alice) = Acme::MilkyHolmes->members_of($MilkyHolmesFeathers);
$kazumi->color_enable(1);
$alice->color_enable(1);
$kazumi->say('ã¢ãã¼ã®ãã¤ãºï¼');
$alice->say('ãã¦ã³ãã®ãã¤ãºï¼');
lib/Acme/MilkyHolmes.pm view on Meta::CPAN
=for stopwords ja
=head1 NAME
Acme::MilkyHolmes - There's more than one way to do it!(SEIKAI HA HITOTSU! JANAI!!)
=head1 SYNOPSIS
use strict;
use warnings;
use utf8;
use Acme::MilkyHolmes;
# fetch members of Milky Holmes(eg/say.pl)
my ($sherlock, $nero, $elly, $cordelia) = Acme::MilkyHolmes->members();
$sherlock->say('ã£ã¦ãªãã§ã§ããã¼');
$nero->say('åã®ãã¾ãã¾æ£ã');
$elly->say('æ¥ãããã...');
$cordelia->say('ç§ã®...ãè±ç...');
# create character instance directly
lib/Acme/MilkyHolmes/Character.pm view on Meta::CPAN
package Acme::MilkyHolmes::Character;
use Mouse;
use Data::Section::Simple;
use Localizer::Resource;
use Localizer::Style::Gettext;
use YAML::Tiny;
use utf8;
has localizer => (
is => 'ro',
);
has locale => (
is => 'rw',
isa => 'Str',
required => 1,
default => 'ja',
lib/Acme/MilkyHolmes/Character.pm view on Meta::CPAN
=for stopwords ja
=head1 NAME
Acme::MilkyHolmes::Character - Character base class for Milky Holmes
=head1 SYNOPSIS
use strict;
use warnings;
use utf8;
use Acme::MilkyHolmes::Character::SherlockShellingford;
my $sherlock = Acme::MilkyHolmes::Character::SherlockShellingford->new();
$sherlock->locale('en');
$sherlock->name; # => 'Sherlock Shellingford'
$sherlock->firstname; # => 'Sherlock'
$sherlock->familyname; # => 'Shellingford'
$sherlock->nickname; # => 'Sheryl'
$sherlock->birthday; # => 'March 31'
$sherlock->voiced_by; # => 'Suzuko Mimori'
lib/Acme/MilkyHolmes/Character/AliceMyojingawa.pm view on Meta::CPAN
package Acme::MilkyHolmes::Character::AliceMyojingawa;
use Mouse;
extends 'Acme::MilkyHolmes::Group::MilkyHolmes';
use utf8;
no Mouse;
1;
__DATA__
@@ common
---
color: white
lib/Acme/MilkyHolmes/Character/CordeliaGlauca.pm view on Meta::CPAN
package Acme::MilkyHolmes::Character::CordeliaGlauca;
use Mouse;
extends 'Acme::MilkyHolmes::Group::MilkyHolmes';
use utf8;
no Mouse;
1;
__DATA__
@@ common
color: blue
lib/Acme/MilkyHolmes/Character/HerculeBarton.pm view on Meta::CPAN
package Acme::MilkyHolmes::Character::HerculeBarton;
use Mouse;
extends 'Acme::MilkyHolmes::Group::MilkyHolmes';
use utf8;
no Mouse;
1;
__DATA__
@@ common
color: green
@@ en
lib/Acme/MilkyHolmes/Character/KazumiTokiwa.pm view on Meta::CPAN
package Acme::MilkyHolmes::Character::KazumiTokiwa;
use Mouse;
extends 'Acme::MilkyHolmes::Group::MilkyHolmes';
use utf8;
use Time::Piece;
no Mouse;
sub voiced_by { #override
my ($self) = @_;
my $now = localtime();
my $threshold = Time::Piece->strptime('2013-12-25T00:00:00Z', '%Y-%m-%dT%H:%M:%SZ');
if ( $now >= $threshold ) {
return $self->_localized_field('voiced_by');
lib/Acme/MilkyHolmes/Character/NeroYuzurizaki.pm view on Meta::CPAN
package Acme::MilkyHolmes::Character::NeroYuzurizaki;
use Mouse;
extends 'Acme::MilkyHolmes::Group::MilkyHolmes';
use utf8;
no Mouse;
1;
__DATA__
@@ common
color: yellow
@@ en
lib/Acme/MilkyHolmes/Character/SherlockShellingford.pm view on Meta::CPAN
package Acme::MilkyHolmes::Character::SherlockShellingford;
use Mouse;
extends 'Acme::MilkyHolmes::Group::MilkyHolmes';
use utf8;
no Mouse;
1;
__DATA__
@@ common
color: pink
lib/Acme/MilkyHolmes/Role/HasPersonalColor.pm view on Meta::CPAN
sub color {
my ($self) = @_;
return $self->common->[0]->{color};
}
sub say {
my ($self, $comment) = @_;
my $message = encode_utf8($self->nickname . ': ' . $comment);
if ( defined $self->color && $self->color_enable ) {
$message = $self->_escaped_message($self->color, $message);
}
print "$message\n";
}
sub _escaped_color_begin {
my ($self, $color_name) = @_;
t/01_members.t view on Meta::CPAN
use strict;
use warnings;
use Acme::MilkyHolmes;
use Test::More;
use utf8;
subtest 'members - milkyholmes', sub {
subtest 'en', sub {
my @milkyholmes = Acme::MilkyHolmes->members( locale => 'en' );
is( scalar(@milkyholmes), 4);
is( $milkyholmes[0]->name, 'Sherlock Shellingford' );
is( $milkyholmes[1]->name, 'Nero Yuzurizaki' );
is( $milkyholmes[2]->name, 'Hercule Barton' );
is( $milkyholmes[3]->name, 'Cordelia Glauca' );
};
t/02_kazumis_voiced_by.t view on Meta::CPAN
use strict;
use warnings;
use Test::MockTime qw( :all );
use Acme::MilkyHolmes;
use Test::More;
use utf8;
subtest 'en - Terakawa named', sub {
set_fixed_time('2013-12-24T23:59:59Z');
my $kazumi = Acme::MilkyHolmes::Character::KazumiTokiwa->new();
$kazumi->locale('en');
is( $kazumi->voiced_by, 'Aimi Terakawa' );
restore_time();