use MooseX::Emulate::Class::Accessor::Fast::Meta::Accessor ();
-our $VERSION = '0.00800';
+our $VERSION = '0.00900';
=head1 NAME
#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
#dont overwrite existing methods
if($reader eq $writer){
- my %opts = ( $meta->has_method($reader) ? () : (accessor => $reader) );
+ my %opts = ( $meta->has_method($reader) ? ( is => 'bare' ) : (accessor => $reader) );
my $attr = $meta->find_attribute_by_name($attr_name) || $meta->add_attribute($attr_name, %opts,
traits => ['MooseX::Emulate::Class::Accessor::Fast::Meta::Role::Attribute']
);
$meta->remove_attribute($attr_name)
if $meta->find_attribute_by_name($attr_name);
my $reader = $self->accessor_name_for($attr_name);
- my @opts = ($meta->has_method($reader) ? () : (reader => $reader) );
+ my @opts = ($meta->has_method($reader) ? (is => 'bare') : (reader => $reader) );
my $attr = $meta->add_attribute($attr_name, @opts,
traits => ['MooseX::Emulate::Class::Accessor::Fast::Meta::Role::Attribute']
) if scalar(@opts);
my($class, $field) = @_;
my $meta = $locate_metaclass->($class);
my $attr = $meta->find_attribute_by_name($field) || $meta->add_attribute($field,
- traits => ['MooseX::Emulate::Class::Accessor::Fast::Meta::Role::Attribute']
+ traits => ['MooseX::Emulate::Class::Accessor::Fast::Meta::Role::Attribute'],
+ is => 'bare',
);
my $reader = $attr->get_read_method_ref;
my $writer = $attr->get_write_method_ref;
my($class, $field) = @_;
my $meta = $locate_metaclass->($class);
my $attr = $meta->find_attribute_by_name($field) || $meta->add_attribute($field,
- traits => ['MooseX::Emulate::Class::Accessor::Fast::Meta::Role::Attribute']
+ traits => ['MooseX::Emulate::Class::Accessor::Fast::Meta::Role::Attribute'],
+ is => 'bare',
);
return $attr->get_read_method_ref;
}
my($class, $field) = @_;
my $meta = $locate_metaclass->($class);
my $attr = $meta->find_attribute_by_name($field) || $meta->add_attribute($field,
- traits => ['MooseX::Emulate::Class::Accessor::Fast::Meta::Role::Attribute']
+ traits => ['MooseX::Emulate::Class::Accessor::Fast::Meta::Role::Attribute'],
+ is => 'bare',
);
return $attr->get_write_method_ref;
}