1 .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.3
4 .\" ========================================================================
5 .de Sh \" Subsection heading
13 .de Sp \" Vertical space (when we can't use .PP)
17 .de Vb \" Begin verbatim text
22 .de Ve \" End verbatim text
26 .\" Set up some character translations and predefined strings. \*(-- will
27 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28 .\" double quote, and \*(R" will give a right double quote. | will give a
29 .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30 .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31 .\" expand to `' in nroff, nothing in troff, for use with C<>.
33 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
37 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
51 .\" If the F register is turned on, we'll generate index entries on stderr for
52 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53 .\" entries marked with X<> in POD. Of course, you'll have to process the
54 .\" output yourself in some meaningful fashion.
57 . tm Index:\\$1\t\\n%\t"\\$2"
63 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
64 .\" way too many mistakes in technical documents.
68 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69 .\" Fear. Run. Save yourself. No user-serviceable parts.
70 . \" fudge factors for nroff and troff
79 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
85 . \" simple accents for nroff and troff
95 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
102 . \" troff and (daisy-wheel) nroff accents
103 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110 .ds ae a\h'-(\w'a'u*4/10)'e
111 .ds Ae A\h'-(\w'A'u*4/10)'E
112 . \" corrections for vroff
113 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115 . \" for low resolution devices (crt and lpr)
116 .if \n(.H>23 .if \n(.V>19 \
129 .\" ========================================================================
131 .IX Title "MooseX::Emulate::Class::Accessor::Fast 3"
132 .TH MooseX::Emulate::Class::Accessor::Fast 3 "2009-09-15" "perl v5.8.7" "User Contributed Perl Documentation"
134 MooseX::Emulate::Class::Accessor::Fast \- Emulate Class::Accessor::Fast behavior using Moose attributes
136 .IX Header "SYNOPSYS"
143 \& with 'MooseX::Emulate::Class::Accessor::Fast';
147 \& #fields with readers and writers
148 \& __PACKAGE__\->mk_accessors(qw/field1 field2/);
149 \& #fields with readers only
150 \& __PACKAGE__\->mk_ro_accessors(qw/field3 field4/);
151 \& #fields with writers only
152 \& __PACKAGE__\->mk_wo_accessors(qw/field5 field6/);
155 .IX Header "DESCRIPTION"
156 This module attempts to emulate the behavior of Class::Accessor::Fast as
157 accurately as possible using the Moose attribute system. The public \s-1API\s0 of
158 \&\f(CW\*(C`Class::Accessor::Fast\*(C'\fR is wholly supported, but the private methods are not.
159 If you are only using the public methods (as you should) migration should be a
160 matter of switching your \f(CW\*(C`use base\*(C'\fR line to a \f(CW\*(C`with\*(C'\fR line.
162 While I have attempted to emulate the behavior of Class::Accessor::Fast as closely
163 as possible bugs may still be lurking in edge\-cases.
165 .IX Header "BEHAVIOR"
166 Simple documentation is provided here for your convenience, but for more thorough
167 documentation please see Class::Accessor::Fast and Class::Accessor.
168 .Sh "A note about introspection"
169 .IX Subsection "A note about introspection"
170 Please note that, at this time, the \f(CW\*(C`is\*(C'\fR flag attribute is not being set. To
171 determine the \f(CW\*(C`reader\*(C'\fR and \f(CW\*(C`writer\*(C'\fR methods using introspection in later versions
172 of Class::MOP ( > 0.38) please use the \f(CW\*(C`get_read_method\*(C'\fR and \f(CW\*(C`get_write_method\*(C'\fR
173 methods in Class::MOP::Attribute. Example
176 \& # with Class::MOP <= 0.38
177 \& my $attr = $self\->meta\->find_attribute_by_name($field_name);
178 \& my $reader_method = $attr\->reader || $attr\->accessor;
179 \& my $writer_method = $attr\->writer || $attr\->accessor;
183 \& # with Class::MOP > 0.38
184 \& my $attr = $self\->meta\->find_attribute_by_name($field_name);
185 \& my $reader_method = $attr\->get_read_method;
186 \& my $writer_method = $attr\->get_write_method;
190 .ie n .Sh "\s-1BUILD\s0 $self\fP \f(CW%args"
191 .el .Sh "\s-1BUILD\s0 \f(CW$self\fP \f(CW%args\fP"
192 .IX Subsection "BUILD $self %args"
193 Change the default Moose class building to emulate the behavior of C::A::F and
194 store arguments in the instance hashref.
195 .ie n .Sh "mk_accessors @field_names"
196 .el .Sh "mk_accessors \f(CW@field_names\fP"
197 .IX Subsection "mk_accessors @field_names"
198 Create read-write accessors. An attribute named \f(CW$field_name\fR will be created.
199 The name of the c<reader> and \f(CW\*(C`writer\*(C'\fR methods will be determined by the return
200 value of \f(CW\*(C`accessor_name_for\*(C'\fR and \f(CW\*(C`mutator_name_for\*(C'\fR, which by default return the
201 name passed unchanged. If the accessor and mutator names are equal the \f(CW\*(C`accessor\*(C'\fR
202 attribute will be passes to Moose, otherwise the \f(CW\*(C`reader\*(C'\fR and \f(CW\*(C`writer\*(C'\fR attributes
203 will be passed. Please see Class::MOP::Attribute for more information.
204 .ie n .Sh "mk_ro_accessors @field_names"
205 .el .Sh "mk_ro_accessors \f(CW@field_names\fP"
206 .IX Subsection "mk_ro_accessors @field_names"
207 Create read-only accessors.
208 .ie n .Sh "mk_ro_accessors @field_names"
209 .el .Sh "mk_ro_accessors \f(CW@field_names\fP"
210 .IX Subsection "mk_ro_accessors @field_names"
211 Create write-only accessors.
212 .Sh "follow_best_practices"
213 .IX Subsection "follow_best_practices"
214 Preface readers with 'get_' and writers with 'set_'.
215 See original Class::Accessor documentation for more information.
216 .Sh "mutator_name_for"
217 .IX Subsection "mutator_name_for"
218 .Sh "accessor_name_for"
219 .IX Subsection "accessor_name_for"
220 See original Class::Accessor documentation for more information.
223 See original Class::Accessor documentation for more information.
226 See original Class::Accessor documentation for more information.
228 .IX Subsection "meta"
229 See Moose::Meta::Class.
231 .IX Header "SEE ALSO"
232 Moose, Moose::Meta::Attribute, Class::Accessor, Class::Accessor::Fast,
233 Class::MOP::Attribute, MooseX::Adopt::Class::Accessor::Fast
236 Guillermo Roditi (groditi) <groditi@cpan.org>
238 With contributions from:
239 .IP "Tomas Doran (t0m) <bobtfish@bobtfish.net>" 4
240 .IX Item "Tomas Doran (t0m) <bobtfish@bobtfish.net>"
242 .IP "Florian Ragwitz (rafl) <rafl@debian.org>" 4
243 .IX Item "Florian Ragwitz (rafl) <rafl@debian.org>"
247 You may distribute this code under the same terms as Perl itself.