RPGのルールでMooseを学んでみる。「その1:キャラ名を決めよう」
RPGのルールでMooseを学んでみる。「その1:キャラ名を決めよう」
キャラクターメイクといったらまずはキャラ名の決定です。
――というわけでキャラクター名を定義してみた。
package TG::PC; use utf8; use Any::Moose; has personalname => ( is => 'ro', isa => 'Str', ); has familyname => ( is => 'ro', isa => 'Str', ); has nickname => ( is => 'ro', isa => 'Str', ); has nameorder => ( is => 'ro', isa => 'Bool', ); sub fullname { my $self = shift; $self->nameorder? $self->familyname . $self->personalname: $self->personalname . '・' . $self->familyname; }
firstname / lastnameじゃないのはフルネームの表記に「姓名」「名・姓」を選べるようにしたかったから。
あ、fullnameのところは
has fullname => ( is => 'ro', lazy => 1, builder => '_build_fullname', ); sub _build_fullname { my $self = shift; $self->nameorder? $self->familyname . $self->personalname: $self->personalname . '・' . $self->familyname; };
――のようにしたほうがMooseっぽいのかな?