Acme-BABYMETAL
view release on metacpan or search on metacpan
requires 'perl', '5.008001';
requires 'Class::Accessor';
requires 'DateTime';
on 'test' => sub {
requires 'Test::More', '0.98';
};
lib/Acme/BABYMETAL.pm view on Meta::CPAN
package Acme::BABYMETAL;
use 5.008001;
use strict;
use warnings;
our $VERSION = "0.03";
my @members = qw(SU-METAL YUIMETAL MOAMETAL);
sub new {
my $class = shift;
my $self = bless {members => []}, $class;
for my $member (@members) {
$member =~ s|-|_|;
my $module_name = 'Acme::BABYMETAL::' . $member;
eval qq|require $module_name;|;
push @{$self->{members}}, $module_name->new;
}
return $self;
}
sub homepage {
my ($self) = @_;
return 'http://www.babymetal.jp/';
}
sub youtube {
my ($self) = @_;
return 'https://www.youtube.com/BABYMETAL';
}
sub facebook {
my ($self) = @_;
return 'https://www.facebook.com/BABYMETAL.jp/';
}
sub instagram {
my ($self) = @_;
return 'https://www.instagram.com/babymetal_official/';
}
sub twitter {
my ($self) = @_;
return 'https://twitter.com/BABYMETAL_JAPAN';
}
sub members {
my ($self, $member) = @_;
return @{$self->{members}} unless $member;
if ( $member =~ /^S/i ) {
@members = $self->{members}[0];
} elsif ( $member =~ /^Y/i ) {
@members = $self->{members}[1];
} elsif ( $member =~ /^M/i ) {
@members = $self->{members}[2];
} else {
@members = @{$self->{members}};
}
return @members;
}
sub shout {
my ($self) = @_;
print "We are BABYMETAL DEATH!!\n";
}
1;
__END__
=encoding utf-8
lib/Acme/BABYMETAL/Base.pm view on Meta::CPAN
family_name_ja
name_en
first_name_en
family_name_en
birthday
age
blood_type
hometown
));
sub new {
my $class = shift;
my $self = bless {}, $class;
$self->_initialize;
return $self;
}
sub _initialize {
my $self = shift;
my %info = $self->info;
$self->{$_} = $info{$_} for keys %info;
$self->{name_ja} = $self->family_name_ja . $self->first_name_ja;
$self->{name_en} = $self->first_name_en . ' ' . $self->family_name_en;
my ($year, $month, $day) = ($self->{birthday} =~ /^(\d{4})-(\d{2})-(\d{2})$/);
$self->{age} = (DateTime->now - DateTime->new(
year => $year,
month => $month,
day => $day,
))->years;
return 1;
}
sub shout {
my $self = shift;
print $self->metal_name . " DEATH!!\n";
}
1;
lib/Acme/BABYMETAL/MOAMETAL.pm view on Meta::CPAN
package Acme::BABYMETAL::MOAMETAL;
use strict;
use warnings;
use base qw(Acme::BABYMETAL::Base);
our $VERSION = '0.03';
sub info {
return (
metal_name => 'MOAMETAL',
first_name_ja => 'ææ',
family_name_ja => 'èå°',
first_name_en => 'Moa',
family_name_en => 'Kikuchi',
birthday => '1999-07-04',
blood_type => 'A',
hometown => 'æç¥ç',
);
lib/Acme/BABYMETAL/SU_METAL.pm view on Meta::CPAN
package Acme::BABYMETAL::SU_METAL;
use strict;
use warnings;
use base qw(Acme::BABYMETAL::Base);
our $VERSION = '0.03';
sub info {
return (
metal_name => 'SU-METAL',
first_name_ja => 'ããé¦',
family_name_ja => 'ä¸å
',
first_name_en => 'Suzuka',
family_name_en => 'Nakamoto',
birthday => '1997-12-20',
blood_type => 'B',
hometown => 'åºå³¶ç',
);
lib/Acme/BABYMETAL/YUIMETAL.pm view on Meta::CPAN
package Acme::BABYMETAL::YUIMETAL;
use strict;
use warnings;
use base qw(Acme::BABYMETAL::Base);
our $VERSION = '0.03';
sub info {
return (
metal_name => 'YUIMETAL',
first_name_ja => 'ç±çµ',
family_name_ja => 'æ°´é',
first_name_en => 'Yui',
family_name_en => 'Mizuno',
birthday => '1999-06-20',
blood_type => 'O',
hometown => 'ç¥å¥å·ç',
);
( run in 0.319 second using v1.01-cache-2.11-cpan-4d50c553e7e )