X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FCookbook.pod;h=8e96f7129ef5ed674219cba84039f9d1cda5ae84;hb=48ac876af2c1991bd6cdba0d54b775a121e01725;hp=2e8c91c43010939dbc6d988ca2f0a479048598bd;hpb=5d9d20f3e1445861792fbff00f8e37396ce7c8ed;p=gitmo%2FMoose.git diff --git a/lib/Moose/Cookbook.pod b/lib/Moose/Cookbook.pod index 2e8c91c..8e96f71 100644 --- a/lib/Moose/Cookbook.pod +++ b/lib/Moose/Cookbook.pod @@ -115,35 +115,38 @@ you extend the object system provided by Moose. =over 4 -=item L - Welcome to the meta-world (Why Go Meta?) +=item L If you're wondering what all this "meta" stuff is, and why you should care about it, read this "recipe". -=item L - Labels implemented via attribute traits +=item L 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 "table" attribute implemented as a metaclass trait +=item L This recipe takes the class metaclass we saw in the previous recipe and reimplements it as a metaclass trait. -=item L - A method metaclass for marking methods public or private +=item L This recipe shows a custom method metaclass that implements making a method private. -=item L - Using a blessed array reference as an object instance +=item L This recipe shows an example of how you create your own meta-instance class. The meta-instance determines the internal structure of object instances and provide access to attribute slots. -=item Moose::Cookbook::Meta::Recipe8 - Hooking into immutabilization (TODO) +In this particular instance, we use a blessed glob reference as the instance +instead of a blessed hash reference. + +=item Hooking into immutabilization (TODO) Moose has a feature known as "immutabilization". By calling C<< __PACKAGE__->meta()->make_immutable() >> after defining your class @@ -167,27 +170,20 @@ if you plan to write your own C module. =over 4 -=item L - Moose extension overview +=item L There are quite a few ways to extend Moose. This recipe provides an overview of each method, and provides recommendations for when each is appropriate. -=item L - Providing a base object class role +=item L Many base object class extensions can be implemented as roles. This example shows how to provide a base object class debugging role that is applied to any class that uses a notional C module. -=item L - Providing an alternate base object class - -You may find that you want to provide an alternate base object class -along with a meta extension, or maybe you just want to add some -functionality to all your classes without typing C over and over. - -=item L - Acting like Moose.pm and providing sugar Moose-style +=item L This recipe shows how to provide a replacement for C. You may want to do this as part of the API for a C module, @@ -206,6 +202,21 @@ object class. =back +=head1 Legacy Recipes + +These cover topics that are no longer considered best practice. We've kept +them in case in you encounter these usages in the wild. + +=over 4 + +=item L + +=item L + +=item L + +=back + =head1 SEE ALSO =over 4