Acme-PrettyCure

 view release on metacpan or  search on metacpan

lib/Acme/PrettyCure/CureDream.pm  view on Meta::CPAN

sub age          {14}
sub challenge { '大いなる希望の力、キュアドリーム!' }

after 'transform' => sub {
    my ($self, @buddies) = @_;

    for my $buddy (@buddies) {
        $buddy->transform;
    }

    $self->say("希望の力と、未来の光");
    $self->say("華麗に羽ばたく五つの心!");
    $self->say("Yes! プリキュア5!");
};


no Any::Moose;
__PACKAGE__->meta->make_immutable;

1;

lib/Acme/PrettyCure/Role.pm  view on Meta::CPAN

package Acme::PrettyCure::Role;
use utf8;
use Any::Moose '::Role';

use Encode;

requires qw(human_name precure_name challenge);

has 'is_precure' => (is => 'rw', isa => 'Bool', default => sub { 0 });

sub say {
    my ($self, $text) = @_;
    print encode_utf8("$text\n");
}

sub name {
    my $self = shift;

    return $self->is_precure ? $self->precure_name : $self->human_name;
}

sub transform {
    my ($self, $buddy) = @_;

    die "already transformed" if $self->is_precure;

    $self->is_precure(1);

    if ($buddy && !$buddy->is_precure) {
        $self->say($_) for $self->challenge;
    } elsif (!$buddy) {
        $self->say($_) for $self->challenge;
    }

    return $self;
}

1;



( run in 0.975 second using v1.01-cache-2.11-cpan-a1f116cd669 )