Acme-MadokaMagica
view release on metacpan or search on metacpan
lib/Acme/MadokaMagica.pm view on Meta::CPAN
Readonly our $AloneMembers => [
@$Alone,
];
Readonly our $MainMembers => [
@$HollyQuintet,
];
sub alone_members {
my $self = shift;
return $self->members_of($AloneMembers,(caller)[2]);
}
sub main_members {
my $self = shift;
return $self->members_of($MainMembers,(caller)[2]);
}
sub members_of {
my ($self, $team) = @_;
my $line = $_[2] || (caller)[2];
my @members;
for my $member_name (@{ $team }){
my $pkg = "Acme::MadokaMagica::TvMembers::$member_name";
if (eval "require $pkg;1;"){
push @members,$pkg->new("line" => $line);
}
}
return @members;
lib/Acme/MadokaMagica/TvMembers.pm view on Meta::CPAN
for my $section_name ( keys %{$sections} ) {
my $yml = YAML::Tiny->read_string($sections->{$section_name});
my $member_info = $yml->[0];
for my $key ( keys %{$member_info} ) {
$self->{$key} = $member_info->{$key};
}
}
if (defined $args{line}) {
$self->{startline} = $args{line};
} else {
$self->{startline} = (caller)[2];
}
return bless $self, $class;
}
sub has_qb {
my $self = shift;
if (@_){
$self->{_has_qb} = shift;
}
return $self->{_has_qb};
}
sub name {
my ($self) = @_;
my $line = (caller)[2];
my $limit = $self->{startline} +100;
if( $line >= $limit ) {
return undef;
}
return $self->has_qb ? $self->{witchename} : $self->lastname.' '.$self->firstname;
}
sub firstname {
my $self = shift;
my $line = (caller)[2];
my $limit = $self->{startline} +100;
if($line >= $limit ) {
return undef;
}
return $self->{firstname};
}
sub birthday {
my $self = shift;
my $line = (caller)[2];
my $limit = $self->{startline} +100;
if($line >= $limit ) {
return undef;
}
return $self->{birthday};
}
sub blood_type {
my $self = shift;
my $line = (caller)[2];
my $limit = $self->{startline} +100;
if( $line >= $limit ) {
return undef;
}
return $self->{blood_type};
}
sub lastname {
my $self = shift;
my $line = (caller)[2];
my $limit = $self->{startline} +100;
if( $line >= $limit ) {
return undef;
}
return $self->{lastname};
}
sub age {
my $self = shift;
my $line = (caller)[2];
my $limit = $self->{startline} +100;
if( $line >= $limit ) {
return undef;
}
return $self->{age};
}
sub color{
my ($self) = @_;
my $line = (caller)[2];
my $limit = $self->{startline} +100;
if( $line >= $limit ) {
return undef;
}
return $self->has_qb ? "black" : $self->{color};
}
sub qb {
my ($self) = @_;
my $line = (caller)[2];
my $limit = $self->{startline} +100;
if( $line >= $limit ) {
return undef;
}
$self->has_qb(1);
}
sub say {
my ($self) = @_;
my $line = (caller)[2];
my $limit = $self->{startline} +100;
if( $line >= $limit ) {
return undef;
}
return $self->{say};
}
sub cv {
my $self = shift;
my $line = (caller)[2];
my $limit = $self->{startline} +100;
if( $line >= $limit ) {
return undef;
}
return $self->{cv};
}
1;
( run in 2.067 seconds using v1.01-cache-2.11-cpan-1e74a51a04c )