Skip to content

Commit

Permalink
no Date::Simple; use Time::Piece;
Browse files Browse the repository at this point in the history
  • Loading branch information
sugyan committed Sep 5, 2011
1 parent ac5e4fc commit 50e4624
Show file tree
Hide file tree
Showing 19 changed files with 122 additions and 89 deletions.
2 changes: 1 addition & 1 deletion META.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ no_index:
- t
requires:
Class::Accessor: 0
Date::Simple: 0
Time::Piece: 0
resources:
license: http://opensource.org/licenses/mit-license.php
repository: git://github.com/hotchpotch/perl-acme-momoiroclover.git
Expand Down
2 changes: 1 addition & 1 deletion Makefile.PL
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ license 'MIT';
all_from 'lib/Acme/MomoiroClover.pm';

requires 'Class::Accessor';
requires 'Date::Simple';
requires 'Time::Piece';
requires 'Test::Exception';

author_tests 'xt';
Expand Down
17 changes: 9 additions & 8 deletions lib/Acme/MomoiroClover.pm
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ package Acme::MomoiroClover;
use strict;
use warnings;

use Carp qw(croak);
use Date::Simple ();
use Acme::MomoiroClover::Z;
use Carp qw(croak);
use Time::Piece;

our $VERSION = '0.1';
our $change_date = localtime(Time::Piece->strptime('2011-04-10', '%Y-%m-%d'));

my @members = qw(
AriyasuMomoka
Expand Down Expand Up @@ -35,7 +35,8 @@ sub new {

sub _check {
my $self = shift;
Date::Simple::today() <= Acme::MomoiroClover::Z::change_date() or croak('MomoiroClover is obsolete. Please use Acme::MomoiroClover::Z ');
croak('MomoiroClover is obsolete. Please use Acme::MomoiroClover::Z')
unless Time::Piece->new < $change_date;
}

sub members {
Expand All @@ -50,7 +51,7 @@ sub members {
elsif ($type eq 'graduate') {
return grep {$_->graduate_date} @members;
}
elsif ($type->isa('Date::Simple')) {
elsif ($type->isa('Time::Piece')) {
return grep {
$_->join_date <= $type and
(!$_->graduate_date or $type <= $_->graduate_date)
Expand All @@ -75,7 +76,7 @@ sub select {
my ($self, $type, $number, $operator, @members) = @_;

$self->_die('invalid operator was passed in')
unless grep {$operator eq $_} qw(== >= <= > <);
unless grep {$operator eq $_} qw(== >= <= > < eq ne);

@members = $self->members unless @members;
my $compare = eval "(sub { \$number $operator \$_[0] })";
Expand Down Expand Up @@ -119,7 +120,7 @@ Acme::MomoiroClover - All about Japanese lock star "Momoiro Clover"
my @members = $momoclo_chan->members; # retrieve all
my @active_members = $momoclo_chan->members('active');
my @graduate_members = $momoclo_chan->members('graduate');
my @at_some_time_members = $momoclo_chan->members(Date::Simple->new('2001-01-01'));
my @at_some_time_members = $momoclo_chan->members(Time::Piece->strptime('2001-01-01', '%Y-%m-%d'));
# retrieve the members under some conditions
my @sorted_by_age = $momoclo_chan->sort('age', 1);
Expand Down Expand Up @@ -154,7 +155,7 @@ Creates and returns a new Acme::MomoiroClover::Z object.
# $type can be one of the values below:
# + active : active members
# + graduate : graduate members
# + Date::Simple object : members at the time passed in
# + Time::Piece object : members at the time passed in
# + undef : all members
my @members = $momoclo_chan->members('active');
Expand Down
7 changes: 4 additions & 3 deletions lib/Acme/MomoiroClover/Members/AriyasuMomoka.pm
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ package Acme::MomoiroClover::Members::AriyasuMomoka;

use strict;
use warnings;
use Time::Piece;

use base qw(Acme::MomoiroClover::Members::Base);
use parent qw(Acme::MomoiroClover::Members::Base);

sub info {
return (
Expand All @@ -12,12 +13,12 @@ sub info {
family_name_en => 'Ariyasu',
first_name_en => 'Momoka',
nick => [qw(ももか)],
birthday => Date::Simple->new('1995-03-15'),
birthday => localtime(Time::Piece->strptime('1995-03-15', '%Y-%m-%d'))->epoch,
blood_type => 'A',
hometown => '埼玉県',
emoticon => [],
graduate_date => undef,
join_date => Date::Simple->new('2009-07-26'),
join_date => localtime(Time::Piece->strptime('2009-07-26', '%Y-%m-%d'))->epoch,
color => 'green',
);
}
Expand Down
36 changes: 18 additions & 18 deletions lib/Acme/MomoiroClover/Members/Base.pm
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package Acme::MomoiroClover::Members::Base;

use strict;
use warnings;
use Date::Simple ();
use base qw(Class::Accessor);
use Time::Piece;
use parent qw(Class::Accessor);

our $ansi_colors = {
red => "\x1b[38;5;1m",
Expand Down Expand Up @@ -55,26 +55,26 @@ sub _initialize {
my %info = $self->info;

$self->{$_} = $info{$_} for keys %info;
for my $time_piece (qw/birthday graduate_date join_date/) {
$self->{$time_piece} = localtime($self->{$time_piece}) if $self->{$time_piece};
}
$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 age {
my $self = shift;
$self->{age} ||= $self->_calculate_age;
}

sub _calculate_age {
my $self = shift;
my $today = Date::Simple::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;
}
my $now = Time::Piece->new;
my $birthday = localtime($self->birthday);

return int do { $now - $birthday }->years;
}

1;
Expand Down Expand Up @@ -104,13 +104,13 @@ member of Momoiro Clover
my $first_name_en = $member->first_name_en;
my $family_name_en = $member->family_name_en;
my $nick = $member->nick; # arrayref
my $birthday = $member->birthday; # Date::Simple object
my $birthday = $member->birthday; # Time::Piece object
my $age = $member->age;
my $blood_type = $member->blood_type;
my $hometown = $member->hometown;
my $emoticon = $member->emoticon; # arrayref
my $graduate_date = $member->graduate_date; # Date::Simple object
my $join_date = $member->join_date; # Date::Simple object
my $graduate_date = $member->graduate_date; # Time::Piece object
my $join_date = $member->join_date; # Time::Piece object
my $color = $member->color;
$member->say('momoclo chan!!');
Expand Down Expand Up @@ -165,7 +165,7 @@ member of Momoiro Clover.
=over 4
=item * L<Date::Simple>
=item * L<Time::Piece>
=back
Expand Down
9 changes: 5 additions & 4 deletions lib/Acme/MomoiroClover/Members/FujishiroSumire.pm
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ package Acme::MomoiroClover::Members::FujishiroSumire;

use strict;
use warnings;
use Time::Piece;

use base qw(Acme::MomoiroClover::Members::Base);
use parent qw(Acme::MomoiroClover::Members::Base);

sub info {
return (
Expand All @@ -12,12 +13,12 @@ sub info {
family_name_en => 'Fujishiro',
first_name_en => 'Sumire',
nick => [],
birthday => Date::Simple->new('1994-05-08'),
birthday => localtime(Time::Piece->strptime('1994-05-08', '%Y-%m-%d'))->epoch,
blood_type => 'O',
hometown => '千葉県',
emoticon => [],
graduate_date => Date::Simple->new('2008-12-29'),
join_date => Date::Simple->new('2008-08-09'),
graduate_date => localtime(Time::Piece->strptime('2008-12-29', '%Y-%m-%d'))->epoch,
join_date => localtime(Time::Piece->strptime('2008-08-09', '%Y-%m-%d'))->epoch,
color => undef,
);
}
Expand Down
9 changes: 5 additions & 4 deletions lib/Acme/MomoiroClover/Members/HayamiAkari.pm
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ package Acme::MomoiroClover::Members::HayamiAkari;

use strict;
use warnings;
use Time::Piece;

use base qw(Acme::MomoiroClover::Members::Base);
use parent qw(Acme::MomoiroClover::Members::Base);

sub info {
return (
Expand All @@ -12,12 +13,12 @@ sub info {
family_name_en => 'Hayami',
first_name_en => 'Akari',
nick => [qw(あかりん)],
birthday => Date::Simple->new('1995-03-17'),
birthday => localtime(Time::Piece->strptime('1995-03-17', '%Y-%m-%d'))->epoch,
blood_type => 'A',
hometown => '東京都',
emoticon => [],
graduate_date => Date::Simple->new('2011-04-10'),
join_date => Date::Simple->new('2008-11-23'),
graduate_date => localtime(Time::Piece->strptime('2011-04-10', '%Y-%m-%d'))->epoch,
join_date => localtime(Time::Piece->strptime('2008-11-23', '%Y-%m-%d'))->epoch,
color => 'blue',
);
}
Expand Down
9 changes: 5 additions & 4 deletions lib/Acme/MomoiroClover/Members/IkuraManami.pm
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ package Acme::MomoiroClover::Members::IkuraManami;

use strict;
use warnings;
use Time::Piece;

use base qw(Acme::MomoiroClover::Members::Base);
use parent qw(Acme::MomoiroClover::Members::Base);

sub info {
return (
Expand All @@ -12,12 +13,12 @@ sub info {
family_name_en => 'Ikura',
first_name_en => 'Manami',
nick => [],
birthday => Date::Simple->new('1994-02-04'),
birthday => localtime(Time::Piece->strptime('1994-02-04', '%Y-%m-%d'))->epoch,
blood_type => 'AB',
hometown => '埼玉県',
emoticon => [],
graduate_date => Date::Simple->new('2008-12-29'),
join_date => Date::Simple->new('2008-05-17'),
graduate_date => localtime(Time::Piece->strptime('2008-12-29', '%Y-%m-%d'))->epoch,
join_date => localtime(Time::Piece->strptime('2008-05-17', '%Y-%m-%d'))->epoch,
color => undef,
);
}
Expand Down
9 changes: 5 additions & 4 deletions lib/Acme/MomoiroClover/Members/KashiwaYukina.pm
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ package Acme::MomoiroClover::Members::KashiwaYukina;

use strict;
use warnings;
use Time::Piece;

use base qw(Acme::MomoiroClover::Members::Base);
use parent qw(Acme::MomoiroClover::Members::Base);

sub info {
return (
Expand All @@ -12,12 +13,12 @@ sub info {
family_name_en => 'Kashiwa',
first_name_en => 'Yukina',
nick => [],
birthday => Date::Simple->new('1994-08-12'),
birthday => localtime(Time::Piece->strptime('1994-08-12', '%Y-%m-%d'))->epoch,
blood_type => 'B',
hometown => '神奈川県',
emoticon => [],
graduate_date => Date::Simple->new('2008-11-23'),
join_date => Date::Simple->new('2009-03-09'),
graduate_date => localtime(Time::Piece->strptime('2008-11-23', '%Y-%m-%d'))->epoch,
join_date => localtime(Time::Piece->strptime('2009-03-09', '%Y-%m-%d'))->epoch,
color => undef,
);
}
Expand Down
9 changes: 5 additions & 4 deletions lib/Acme/MomoiroClover/Members/MomotaKanako.pm
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,23 @@ package Acme::MomoiroClover::Members::MomotaKanako;

use strict;
use warnings;
use Time::Piece;

use base qw(Acme::MomoiroClover::Members::Base);
use parent qw(Acme::MomoiroClover::Members::Base);

sub info {
return (
family_name_ja => '百田',
first_name_ja => '夏菜子 ',
first_name_ja => '夏菜子',
family_name_en => 'Momota',
first_name_en => 'Kanako',
nick => [qw(かなこ デコちゃん)],
birthday => Date::Simple->new('1994-07-12'),
birthday => localtime(Time::Piece->strptime('1994-07-12', '%Y-%m-%d'))->epoch,
blood_type => 'AB',
hometown => '静岡県',
emoticon => [],
graduate_date => undef,
join_date => Date::Simple->new('2008-05-17'),
join_date => localtime(Time::Piece->strptime('2008-05-17', '%Y-%m-%d'))->epoch,
color => 'red',
);
}
Expand Down
7 changes: 4 additions & 3 deletions lib/Acme/MomoiroClover/Members/SasakiAyaka.pm
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ package Acme::MomoiroClover::Members::SasakiAyaka;

use strict;
use warnings;
use Time::Piece;

use base qw(Acme::MomoiroClover::Members::Base);
use parent qw(Acme::MomoiroClover::Members::Base);

sub info {
return (
Expand All @@ -12,12 +13,12 @@ sub info {
family_name_en => 'Sasaki',
first_name_en => 'Ayaka',
nick => [qw(あーりん)],
birthday => Date::Simple->new('1996-06-11'),
birthday => localtime(Time::Piece->strptime('1996-06-11', '%Y-%m-%d'))->epoch,
blood_type => 'AB',
hometown => '東京都',
emoticon => [],
graduate_date => undef,
join_date => Date::Simple->new('2008-11-23'),
join_date => localtime(Time::Piece->strptime('2008-11-23', '%Y-%m-%d'))->epoch,
color => 'pink',
);
}
Expand Down
7 changes: 4 additions & 3 deletions lib/Acme/MomoiroClover/Members/TakagiReni.pm
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ package Acme::MomoiroClover::Members::TakagiReni;

use strict;
use warnings;
use Time::Piece;

use base qw(Acme::MomoiroClover::Members::Base);
use parent qw(Acme::MomoiroClover::Members::Base);

sub info {
return (
Expand All @@ -12,12 +13,12 @@ sub info {
family_name_en => 'Takagi',
first_name_en => 'Reni',
nick => [qw(れにちゃん)],
birthday => Date::Simple->new('1993-06-21'),
birthday => localtime(Time::Piece->strptime('1993-06-21', '%Y-%m-%d'))->epoch,
blood_type => 'O',
hometown => '神奈川県',
emoticon => [],
graduate_date => undef,
join_date => Date::Simple->new('2008-05-17'),
join_date => localtime(Time::Piece->strptime('2008-05-17', '%Y-%m-%d'))->epoch,
color => 'purple',
);
}
Expand Down
9 changes: 5 additions & 4 deletions lib/Acme/MomoiroClover/Members/TakaiTsukina.pm
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ package Acme::MomoiroClover::Members::TakaiTsukina;

use strict;
use warnings;
use Time::Piece;

use base qw(Acme::MomoiroClover::Members::Base);
use parent qw(Acme::MomoiroClover::Members::Base);

sub info {
return (
Expand All @@ -12,12 +13,12 @@ sub info {
family_name_en => 'Takai',
first_name_en => 'Tsukina',
nick => [qw(つっきーな)],
birthday => Date::Simple->new('1995-07-06'),
birthday => localtime(Time::Piece->strptime('1995-07-06', '%Y-%m-%d'))->epoch,
blood_type => 'AB',
hometown => '愛知県',
emoticon => [],
graduate_date => Date::Simple->new('2008-08-09'),
join_date => Date::Simple->new('2008-05-17'),
graduate_date => localtime(Time::Piece->strptime('2008-08-09', '%Y-%m-%d'))->epoch,
join_date => localtime(Time::Piece->strptime('2008-05-17', '%Y-%m-%d'))->epoch,
color => undef,
);
}
Expand Down
Loading

0 comments on commit 50e4624

Please sign in to comment.