Acme::MorningMusume::ShinMember - Create random Morning Musume!


Acme-MorningMusume-ShinMember documentation Contained in the Acme-MorningMusume-ShinMember distribution.

Index


Code Index:

NAME

Top

Acme::MorningMusume::ShinMember - Create random Morning Musume!

VERSION

Top

Version 0.01

SYNOPSIS

Top

Creates a random morning musume member that's "based on" two random parent members:

    use Acme::MorningMusume::ShinMember;

    my $member = Acme::MorningMusume::ShinMember->new;
    print "I created ". $member->name_en. "!\n";
    # etc..

The $member can then be used like any Acme::MorningMusume::Base object. See bin/genmusume for an example.

FUNCTIONS

Top

info

Called by Acme::MorningMusume::Base::new to make the Musume.

AUTHOR

Top

Jonathan Rockway, <jrockway at cpan.org>

BUGS

Top

Please report any bugs or feature requests to bug-acme-morningmusume-shinmember at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Acme-MorningMusume-ShinMember. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SEE ALSO

Top

Want the real Mornon

ACKNOWLEDGEMENTS

Top

#perl.

COPYRIGHT & LICENSE

Top


Acme-MorningMusume-ShinMember documentation Contained in the Acme-MorningMusume-ShinMember distribution.
package Acme::MorningMusume::ShinMember;

use warnings;
use strict;
use Acme::MorningMusume;
use Acme::BloodType;
use utf8;
use base 'Acme::MorningMusume::Base';

our $VERSION = '0.01';

sub info {    
    my $musume = Acme::MorningMusume->new;
    my @musume = $musume->select('age', 0, '<'); # all of 'em!
    my ($mom, $dad) = @musume[rand(@musume), rand(@musume)];
    
    my %attributes;
    $attributes{first_name_en} = $mom->first_name_en;
    $attributes{first_name_ja} = $mom->first_name_ja;
    utf8::decode($attributes{first_name_ja});
    $attributes{family_name_en}  = $dad->family_name_en;
    $attributes{family_name_ja}  = $dad->family_name_ja;
    utf8::decode($attributes{family_name_ja});
    $attributes{nick} = [substr($attributes{first_name_ja}, 0, 1).'っちゃん'];
    $attributes{birthday} = $mom->birthday - rand($mom->birthday - 
						  $dad->birthday);
    $attributes{blood_type} = Acme::BloodType->new(
				     {phenotype => $mom->blood_type} 
						  )->cross(
			      Acme::BloodType->new(
				     {phenotype => $dad->blood_type}))
			       ->get_bloodtype;
    
    $attributes{hometown} = (rand 1 < 0.5 ? $mom : $dad)->hometown;
    utf8::decode($attributes{hometown});

    $attributes{graduate_date} = undef;
    $attributes{class} = int ($mom->class - rand($mom->class - $dad->class));
    $attributes{emoticon} = [(@{$dad->emoticon||()}, 
			       @{$mom->emoticon||()})[0..rand 2]];
    utf8::decode($_) for @{$attributes{emoticon}};
    return %attributes;
}

1; # End of Acme::MorningMusume::ShinMember