Fix such that BUILD method is advised with a modifier, rather than being present...
[gitmo/MooseX-Emulate-Class-Accessor-Fast.git] / lib / MooseX / Emulate / Class / Accessor / Fast.pm
index 9b5db78..6700a6b 100644 (file)
@@ -6,7 +6,7 @@ use Scalar::Util ();
 
 use MooseX::Emulate::Class::Accessor::Fast::Meta::Accessor ();
 
-our $VERSION = '0.00800';
+our $VERSION = '0.00802';
 
 =head1 NAME
 
@@ -23,9 +23,9 @@ MooseX::Emulate::Class::Accessor::Fast - Emulate Class::Accessor::Fast behavior
     #fields with readers and writers
     __PACKAGE__->mk_accessors(qw/field1 field2/);
     #fields with readers only
-    __PACKAGE__->mk_accessors(qw/field3 field4/);
+    __PACKAGE__->mk_ro_accessors(qw/field3 field4/);
     #fields with writers only
-    __PACKAGE__->mk_accessors(qw/field5 field6/);
+    __PACKAGE__->mk_wo_accessors(qw/field5 field6/);
 
 
 =head1 DESCRIPTION
@@ -77,17 +77,18 @@ my $locate_metaclass = sub {
 };
 
 sub BUILD {
+    shift;
+}
+
+around 'BUILD' => sub {
+  my $orig = shift;
   my $self = shift;
-  my %args;
-  if (scalar @_ == 1 && defined $_[0] && ref($_[0]) eq 'HASH') {
-    %args = %{$_[0]};
-  } elsif( scalar(@_) ) {
-    %args = @_;
-  }
+  my %args = %{ $_[0] };
+  $self = $self->$orig(\%args);
   my @extra = grep { !exists($self->{$_}) } keys %args;
   @{$self}{@extra} = @args{@extra};
   return $self;
-}
+};
 
 =head2 mk_accessors @field_names