Acme-Keyakizaka46

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            "Test::CPAN::Meta" : "0",
            "Test::MinimumVersion::Fast" : "0.04",
            "Test::PAUSE::Permissions" : "0.04",
            "Test::Pod" : "1.41",
            "Test::Spellunker" : "v0.2.7"
         }
      },
      "runtime" : {
         "requires" : {
            "Class::Accessor" : "0",
            "DateTime" : "0",
            "perl" : "5.008001"
         }
      },
      "test" : {
         "requires" : {
            "Test::More" : "0.98"
         }
      }
   },
   "provides" : {

META.yml  view on Meta::CPAN

  Acme::Keyakizaka46::YuiKobayashi:
    file: lib/Acme/Keyakizaka46/YuiKobayashi.pm
  Acme::Keyakizaka46::YukaKageyama:
    file: lib/Acme/Keyakizaka46/YukaKageyama.pm
  Acme::Keyakizaka46::YurinaHirate:
    file: lib/Acme/Keyakizaka46/YurinaHirate.pm
  Acme::Keyakizaka46::YuukaSugai:
    file: lib/Acme/Keyakizaka46/YuukaSugai.pm
requires:
  Class::Accessor: '0'
  DateTime: '0'
  perl: '5.008001'
resources:
  bugtracker: https://github.com/tearon4/Acme-Keyakizaka46/issues
  homepage: https://github.com/tearon4/Acme-Keyakizaka46
  repository: git://github.com/tearon4/Acme-Keyakizaka46.git
version: 0.0.1
x_contributors:
  - 'tearon4 <okawara-ayato@kayac.com>'

cpanfile  view on Meta::CPAN

requires 'perl', '5.008001';
requires 'Class::Accessor';
requires 'DateTime';

on 'test' => sub {
    requires 'Test::More', '0.98';
};

lib/Acme/Keyakizaka46.pm  view on Meta::CPAN

package Acme::Keyakizaka46;

use strict;
use warnings;

use Carp  qw(croak);
use DateTime;

our $VERSION = '0.0.1';

my @members = qw(
    NijikaIshimori
    YuiImaizumi
    RinaUemura
    RikaOzeki
    NanaOda
    MinamiKoike

lib/Acme/Keyakizaka46/Base.pm  view on Meta::CPAN

package Acme::Keyakizaka46::Base;

use strict;
use warnings;
use DateTime;
use base qw(Class::Accessor);

our $VERSION = '0.0.1';

__PACKAGE__->mk_accessors(qw(
        first_name_en
        family_name_en
        first_name_ja
        family_name_ja
        birthday

lib/Acme/Keyakizaka46/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->ymd('');
    my $birthday = $self->birthday->ymd('');

    return int(($today-$birthday)/10000);
}

sub _datetime_from_date {
    my ($self, $date) = @_;
    my ($year, $month, $day) = ($date =~ /(\d{4})-(\d{2})-(\d{2})/);

    DateTime->new(
        year  => $year,
        month => $month,
        day   => $day,
    );
}

1;

__END__

t/01_team_members.t  view on Meta::CPAN

use strict;
use DateTime;
use Acme::Keyakizaka46;
use Test::More tests => 3;

my $keyaki = Acme::Keyakizaka46->new;

is scalar($keyaki->team_members),             41, " ALL KEYAKI MEMBERS";
is scalar($keyaki->team_members('kanji')),    21, " KANJI KEYAKI MEMBERS";
is scalar($keyaki->team_members('hiragana')), 20, " HIRAGANA KEYAKI MEMBERS";

t/02_nogizaka46.t  view on Meta::CPAN

my @members = $keyaki->team_members;

for my $member (@members) {
    ok $member,                                         $member->name_en;
    ok $member->first_name_en,                          '  first_name_en()';
    ok $member->family_name_en,                         '  family_name_en()';
    ok $member->name_en,                                '  name_en()';
    ok $member->first_name_ja,                          '  first_name_ja()';
    ok $member->family_name_ja,                         '  family_name_ja()';
    ok $member->name_ja,                                '  name_ja()';
    ok $member->birthday->isa('DateTime'),              '  birthday()';
    ok $member->age 
        && $member->age =~ /\d{2}/,                     '  age()';
    ok $member->zodiac_sign,                            '  zodiac_sign()';
    ok $member->height 
        && $member->height =~ /\d{3}/,                  '  height()';
    ok $member->hometown,                               '  hometown()';
    ok $member->blood_type,                             '  blood_type()';
    ok $member->team,                                   '  team()';
    ok $member->class,                                  '  class()';
    ok !$member->center || scalar($member->center) > 0, '  center()';

t/03_select.t  view on Meta::CPAN

use strict;
use DateTime;
use Acme::Keyakizaka46;
use Test::More tests => 2;

my $keyaki  = Acme::Keyakizaka46->new;

my @neru = $keyaki->select('family_name_en', 'Nagahama', 'eq');
is $neru[0]->name_en, 'Neru Nagahama', "ねるを検索";

my @ab = $keyaki->select('blood_type', 'AB', 'eq');
is scalar @ab, 5, "AB型のメンバーは5人";

t/04_sort.t  view on Meta::CPAN

use strict;
use DateTime;
use Acme::Keyakizaka46;
use Test::More tests => 2;

my $keyaki  = Acme::Keyakizaka46->new;

my @sorted_by_height = $keyaki->sort('height', 'desc');
is $sorted_by_height[0]->name_en, 'Mizuho Habu', "一番高身長";

my @sorted_by_birthday = $keyaki->sort('birthday', 'asc');
is $sorted_by_birthday[0]->name_en, 'Rika Watanabe', "最年長";



( run in 0.318 second using v1.01-cache-2.11-cpan-05444aca049 )