X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FCookbook.pod;h=7ea1cb2d2422c8c79bc99972cc0ffe3732867045;hb=8371f6e1acd993fed622766a35637db06aacd915;hp=b1ad8a65549edbc6b03043115c180ee6b5705c87;hpb=4711f5f709b4363d26ed39068155e74addb247f2;p=gitmo%2FMoose.git diff --git a/lib/Moose/Cookbook.pod b/lib/Moose/Cookbook.pod index b1ad8a6..7ea1cb2 100644 --- a/lib/Moose/Cookbook.pod +++ b/lib/Moose/Cookbook.pod @@ -17,19 +17,117 @@ for common questions and problems people have with Moose. =head1 RECIPES +=head2 Basic Moose + =over 4 =item L - The (always classic) B example +A simple Moose-based class. Demonstrated Moose attributes and subclassing. + =item L - A simple B example +A slightly more complex Moose class. Demonstrates using a method +modifier in a subclass. + =item L - A lazy B example +Demonstrates several attribute features, including types, weak +references, predicates ("does this object have a foo?"), defaults, and +lazy attribute construction. + =item L - Subtypes, and modeling a simple B class hierarchy +Introduces the creation and use of custom types, a C method, +and the use of C in a subclass. + =item L - More subtypes, coercion in a B class -=item L - The Moose::Role example +More type examples, including the use of type coercions. + +=item L - The augment/inner example + +Demonstrates the use of C method modifiers, a way of turning +the usual method overriding style "inside-out". + +=item L - Making Moose fast with immutable + +Making a class immutable greatly increases the speed of accessors and +object construction. + +=item L - Managing complex relations with trigger (TODO) + +I + +Work off of this http://code2.0beta.co.uk/moose/svn/Moose/trunk/t/200_examples/007_Child_Parent_attr_inherit.t + +=item L - Builder methods and lazy_build + +The builder feature provides an inheritable and role-composable way to +provide a default attribute value. + +=back + +=head2 Moose Roles + +=over 4 + +=item L - The Moose::Role example + +Demonstrates roles, which are also sometimes known as traits or +mix-ins. Roles provide a method of code re-use which is orthogonal to +subclassing. + +=item L - Advanced Role Composition - method exclusion and aliasing + +Sometimes you just want to include part of a role in your +class. Sometimes you want the whole role but one if its methods +conflicts with one in your class. With method exclusion and aliasing, +you can work around these problems. + +=item L - Runtime Role Composition (TODO) + +I + +=back + +=head2 Meta Moose + +=over 4 + +=item L - Welcome to the meta-world (TODO) + +I + +=item L - The meta-attribute example + +One way to extend Moose is to provide your own attribute +metaclasses. Attribute metaclasses let you extend attribute +declarations (with C) and behavior to provide additional +attribute functionality. + +=item L - The meta-attribute trait example + +Extending Moose's attribute metaclass is a great way to add +functionality. However, attributes can only have one metaclass. +Applying roles to the attribute metaclass lets you provide +composable attribute functionality. + +=item L - The meta-instance example (TODO) + +I + +=item L - The meta-class example (TODO) + +I + +=back + +=head1 SNACKS + +=over 4 + +=item L =back @@ -37,7 +135,7 @@ for common questions and problems people have with Moose. =over 4 -=item L +=item L =back @@ -47,11 +145,11 @@ Stevan Little Estevan@iinteractive.comE =head1 COPYRIGHT AND LICENSE -Copyright 2006, 2007 by Infinity Interactive, Inc. +Copyright 2006-2008 by Infinity Interactive, Inc. L This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. -=cut \ No newline at end of file +=cut