Acme-Speed
view release on metacpan or search on metacpan
"requires" : {
"Test::CPAN::Meta" : "0",
"Test::MinimumVersion" : "0.10108",
"Test::Pod" : "1.41",
"Test::Spellunker" : "v0.2.7"
}
},
"runtime" : {
"requires" : {
"Class::Accessor" : "0",
"DateTime" : "0"
}
},
"test" : {
"requires" : {
"Test::More" : "0.98"
}
}
},
"provides" : {
"Acme::Speed" : {
file: lib/Acme/Speed/Member/ImaiEriko.pm
version: 0
Acme::Speed::Member::ShimabukuroHiroko:
file: lib/Acme/Speed/Member/ShimabukuroHiroko.pm
version: 0
Acme::Speed::Member::UeharaTakako:
file: lib/Acme/Speed/Member/UeharaTakako.pm
version: 0
requires:
Class::Accessor: 0
DateTime: 0
resources:
bugtracker: https://github.com/kitak/p5-Acme-Speed/issues
homepage: https://github.com/kitak/p5-Acme-Speed
repository: https://github.com/kitak/p5-Acme-Speed.git
version: 0.01
x_contributors:
- 'Keisuke KITA <kei.kita2501@gmail.com>'
requires 'Class::Accessor';
requires 'DateTime';
on 'test' => sub {
requires 'Test::More', '0.98';
};
lib/Acme/Speed/Member/Base.pm view on Meta::CPAN
package Acme::Speed::Member::Base;
use strict;
use warnings;
use DateTime;
use base qw(Class::Accessor);
__PACKAGE__->mk_accessors(qw(
name_ja
first_name_ja
family_name_ja
name_en
first_name_en
family_name_en
birthday
lib/Acme/Speed/Member/Base.pm view on Meta::CPAN
$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;
$self->{age} = $self->_calculate_age;
return 1;
}
sub _calculate_age {
my $self = shift;
my $today = DateTime->today;
if (($today->month - $self->birthday->month) >= 0) {
if (($today->day - $self->birthday->day) >= 0) {
return $today->year - $self->birthday->year;
} else {
return ($today->year - $self->birthday->year) - 1;
}
} else {
return ($today->year - $self->birthday->year) - 1;
}
}
sub _datetime_from_date {
my ($self, $date) = @_;
my ($year, $month, $day) = ($date =~ /(\d{4})-(\d{2})-(\d{2})/);
return DateTime->new(
year => $year,
month => $month,
day => $day,
);
}
1;
__END__
lib/Acme/Speed/Member/Base.pm view on Meta::CPAN
my @members = $speed->members;
for my $member (@members) {
my $name_ja = $member->name_ja;
my $first_name_ja = $member->first_name_ja;
my $family_name_ja = $member->family_name_ja;
my $name_en = $member->name_en;
my $first_name_en = $member->first_name_en;
my $family_name_en = $member->family_name_en;
my $nick = $member->nick;
my $birthday = $member->birthday; # DateTime object
my $age = $member->age;
}
=head1 DESCRIPTION
Acme::Speed::Member::Base is a base class of the class represents each member of SPEED.
=head1 ACCESSORS
=head2 name_ja
t/01_members.t view on Meta::CPAN
use strict;
use DateTime;
use Acme::Speed;
use Test::More tests => 1;
my $speed = Acme::Speed->new;
is scalar($speed->members), 4, " members"
( run in 0.393 second using v1.01-cache-2.11-cpan-05444aca049 )