Updated some documentation
Paul Driver [Fri, 18 Jul 2008 20:16:22 +0000 (20:16 +0000)]
lib/Moose.pm
lib/Moose/Meta/Attribute.pm

index ecc8801..a74108d 100644 (file)
@@ -454,13 +454,16 @@ If an attribute is marked as lazy it B<must> have a default supplied.
 This tells the accessor whether to automatically dereference the value returned.
 This is only legal if your C<isa> option is either C<ArrayRef> or C<HashRef>.
 
-=item I<trigger =E<gt> $code>
-
-The I<trigger> option is a CODE reference which will be called after the value of
-the attribute is set. The CODE ref will be passed the instance itself, the
-updated value and the attribute meta-object (this is for more advanced fiddling
-and can typically be ignored). You B<cannot> have a trigger on a read-only
-attribute.
+=item I<trigger =E<gt> $code or $hash>
+
+The I<trigger> option is a CODE reference which will be called after the value
+of the attribute is set. The CODE ref will be passed the instance itself, the
+updated value and the attribute meta-object (this is for more advanced
+fiddling and can typically be ignored). You B<cannot> have a trigger on a
+read-only attribute.  It can optionally be a hashref of before/after/around to
+CODE refs, in which case after/before behave as in the plain CODE ref case,
+and around first gets a CODE ref which takes the rest of the args and sets the
+value.
 
 =item I<handles =E<gt> ARRAY | HASH | REGEXP | ROLE | CODE>
 
index 1ad7550..21765b3 100644 (file)
@@ -955,6 +955,11 @@ value of an attribute is assigned. The CODE ref will get two values,
 the invocant and the new value. This can be used to handle I<basic>
 bi-directional relations.
 
+This can also be a HASH of CODE refs for before/around/after, much
+in the same vein as method modifiers.  After and before work just
+like the plain CODE ref case. Around first gets a CODE ref that 
+expects the rest of the args and will assign the value.
+
 =item B<documentation>
 
 This is a string which contains the documentation for this attribute.