X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FCookbook.pod;h=7ea1cb2d2422c8c79bc99972cc0ffe3732867045;hb=8371f6e1acd993fed622766a35637db06aacd915;hp=541c5bf92d56446d80de72172ca8069d6f89d90b;hpb=104379bc77144fb62e619d1edc3f7d9b3db47043;p=gitmo%2FMoose.git diff --git a/lib/Moose/Cookbook.pod b/lib/Moose/Cookbook.pod index 541c5bf..7ea1cb2 100644 --- a/lib/Moose/Cookbook.pod +++ b/lib/Moose/Cookbook.pod @@ -23,21 +23,48 @@ for common questions and problems people have with Moose. =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 +More type examples, including the use of type coercions. + =item L - The augment/inner example -=item L - Making Moose fast with immutable (TODO) +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 -=item L - ?? +Making a class immutable greatly increases the speed of accessors and +object construction. -=item L - ?? +=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 @@ -47,10 +74,21 @@ for common questions and problems people have with Moose. =item L - The Moose::Role example -=item L - Advanced Role Composition (TODO) +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 @@ -59,14 +97,38 @@ for common questions and problems people have with Moose. =item L - Welcome to the meta-world (TODO) +I + =item L - The meta-attribute example -=item L - The meta-attribute trait example (TODO) +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 =head1 SEE ALSO @@ -90,4 +152,4 @@ 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