typo
[gitmo/moose-presentations.git] / moose-class / exercises / lib / Person.pm
index 9ec8c1b..3f3fc46 100644 (file)
@@ -1,4 +1,30 @@
 package Person;
 
+use Moose;
+
+use namespace::clean -except => "meta";
+
+has [qw(first_name last_name)] => (
+    is => "rw",
+    required => 1,
+);
+
+sub full_name {
+    my $self = shift;
+    $self->first_name . " " . $self->last_name;
+}
+
+override BUILDARGS => sub {
+    my ( $self, @args ) = @_;
+
+    if ( @args == 1 and ref $args[0] eq 'ARRAY' ) {
+        my %p; @p{qw(first_name last_name)} = @{ $args[0] };
+        return \%p;
+    } else {
+        return super;
+    }
+};
+
+__PACKAGE__->meta->make_immutable;
 
 1;