use MooseX::Emulate::Class::Accessor::Fast::Meta::Accessor ();
-our $VERSION = '0.00800';
+our $VERSION = '0.00900';
=head1 NAME
-MooseX::Emulate::Class::Accessor::Fast -
- Emulate Class::Accessor::Fast behavior using Moose attributes
+MooseX::Emulate::Class::Accessor::Fast - Emulate Class::Accessor::Fast behavior using Moose attributes
=head1 SYNOPSYS
#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
|| Moose::Meta::Class->initialize($class);
};
-sub BUILD {
+sub BUILD { }
+
+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->$orig(\%args);
my @extra = grep { !exists($self->{$_}) } keys %args;
@{$self}{@extra} = @args{@extra};
return $self;
-}
+};
=head2 mk_accessors @field_names
=cut
-sub mk_accessors{
+sub mk_accessors {
my $self = shift;
my $meta = $locate_metaclass->($self);
my $class = $meta->name;
=cut
-sub mk_ro_accessors{
+sub mk_ro_accessors {
my $self = shift;
my $meta = $locate_metaclass->($self);
my $class = $meta->name;
=cut
#this is retarded.. but we need it for compatibility or whatever.
-sub mk_wo_accessors{
+sub mk_wo_accessors {
my $self = shift;
my $meta = $locate_metaclass->($self);
my $class = $meta->name;
=cut
-sub follow_best_practice{
+sub follow_best_practice {
my $self = shift;
my $meta = $locate_metaclass->($self);
=cut
-sub mutator_name_for{ return $_[1] }
-sub accessor_name_for{ return $_[1] }
+sub mutator_name_for { return $_[1] }
+sub accessor_name_for { return $_[1] }
=head2 set
=cut
-sub set{
+sub set {
my $self = shift;
my $k = shift;
confess "Wrong number of arguments received" unless scalar @_;
=cut
-sub get{
+sub get {
my $self = shift;
confess "Wrong number of arguments received" unless scalar @_;
my $meta = $locate_metaclass->($self);