X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMouse.git;a=blobdiff_plain;f=lib%2FMouse%2FPurePerl.pm;h=a6f1be43903a6e61c5731429f61185824da05127;hp=1dbb7ab53fb148c6ef1adc0ce53ee3813d03f3c9;hb=aa2d2e2c0621cdcb8b2ec7cf49beb3a9de11803c;hpb=da4432f337513a1c3c791a4e6753a4b743cf3f62 diff --git a/lib/Mouse/PurePerl.pm b/lib/Mouse/PurePerl.pm index 1dbb7ab..a6f1be4 100644 --- a/lib/Mouse/PurePerl.pm +++ b/lib/Mouse/PurePerl.pm @@ -168,7 +168,7 @@ package sub name { $_[0]->{package} } sub _method_map { $_[0]->{methods} } -sub _attribute_map{ $_[0]->{attribute_map} } +sub _attribute_map{ $_[0]->{attributes} } sub namespace{ my $name = $_[0]->{package}; @@ -213,7 +213,7 @@ sub linearized_isa { @{ get_linear_isa($_[0]->{package}) } } sub get_all_attributes { my($self) = @_; - my %attrs = map { %{ $self->initialize($_)->_attribute_map } } reverse $self->linearized_isa; + my %attrs = map { %{ $self->initialize($_)->{attributes} } } reverse $self->linearized_isa; return values %attrs; } @@ -337,7 +337,23 @@ sub compile_type_constraint{ return; } +package + Mouse::Object; + + +sub BUILDARGS { + my $class = shift; + if (scalar @_ == 1) { + (ref($_[0]) eq 'HASH') + || $class->meta->throw_error("Single parameters to new() must be a HASH ref"); + + return {%{$_[0]}}; + } + else { + return {@_}; + } +} 1; __END__