MooseX::Emulate::ClassUsercContributeMooseX::Emulate::Class::Accessor::Fast(3)NAMEMooseX::Emulate::Class::Accessor::Fast - Emulate Class::Accessor::Fast
behavior using Moose attributes
SYNOPSYS
package MyClass;
use Moose;
with 'MooseX::Emulate::Class::Accessor::Fast';
#fields with readers and writers
__PACKAGE__->mk_accessors(qw/field1 field2/);
#fields with readers only
__PACKAGE__->mk_ro_accessors(qw/field3 field4/);
#fields with writers only
__PACKAGE__->mk_wo_accessors(qw/field5 field6/);
DESCRIPTION
This module attempts to emulate the behavior of Class::Accessor::Fast
as accurately as possible using the Moose attribute system. The public
API of "Class::Accessor::Fast" is wholly supported, but the private
methods are not. If you are only using the public methods (as you
should) migration should be a matter of switching your "use base" line
to a "with" line.
While I have attempted to emulate the behavior of Class::Accessor::Fast
as closely as possible bugs may still be lurking in edge-cases.
BEHAVIOR
Simple documentation is provided here for your convenience, but for
more thorough documentation please see Class::Accessor::Fast and
Class::Accessor.
A note about introspection
Please note that, at this time, the "is" flag attribute is not being
set. To determine the "reader" and "writer" methods using introspection
in later versions of Class::MOP ( > 0.38) please use the
"get_read_method" and "get_write_method" methods in
Class::MOP::Attribute. Example
# with Class::MOP <= 0.38
my $attr = $self->meta->find_attribute_by_name($field_name);
my $reader_method = $attr->reader || $attr->accessor;
my $writer_method = $attr->writer || $attr->accessor;
# with Class::MOP > 0.38
my $attr = $self->meta->find_attribute_by_name($field_name);
my $reader_method = $attr->get_read_method;
my $writer_method = $attr->get_write_method;
METHODS
BUILD $self %args
Change the default Moose class building to emulate the behavior of
C::A::F and store arguments in the instance hashref.
mk_accessors @field_names
Create read-write accessors. An attribute named $field_name will be
created. The name of the c<reader> and "writer" methods will be
determined by the return value of "accessor_name_for" and
"mutator_name_for", which by default return the name passed unchanged.
If the accessor and mutator names are equal the "accessor" attribute
will be passes to Moose, otherwise the "reader" and "writer" attributes
will be passed. Please see Class::MOP::Attribute for more information.
mk_ro_accessors @field_names
Create read-only accessors.
mk_ro_accessors @field_names
Create write-only accessors.
follow_best_practices
Preface readers with 'get_' and writers with 'set_'. See original
Class::Accessor documentation for more information.
mutator_name_for
accessor_name_for
See original Class::Accessor documentation for more information.
set
See original Class::Accessor documentation for more information.
get
See original Class::Accessor documentation for more information.
meta
See Moose::Meta::Class.
SEE ALSO
Moose, Moose::Meta::Attribute, Class::Accessor, Class::Accessor::Fast,
Class::MOP::Attribute, MooseX::Adopt::Class::Accessor::Fast
AUTHORS
Guillermo Roditi (groditi) <groditi@cpan.org>
With contributions from:
Tomas Doran (t0m) <bobtfish@bobtfish.net>
Florian Ragwitz (rafl) <rafl@debian.org>
LICENSE
You may distribute this code under the same terms as Perl itself.
perl v5.14.1200MooseX::Emulate::Class::Accessor::Fast(3)