Mark extending recipe 2 as TODO
[gitmo/Moose.git] / lib / Moose / Cookbook.pod
index b14dff6..0f106ca 100644 (file)
@@ -112,7 +112,8 @@ you extend the object system provide by Moose.
 
 =item L<Moose::Cookbook::Meta::Recipe1> - Welcome to the meta-world (Why Go Meta?)
 
-I<abstract goes here>
+If you're wondering what all this "meta" stuff is, and why you should
+care about it, read this "recipe".
 
 =item L<Moose::Cookbook::Meta::Recipe2> - A meta-attribute, attributes with labels
 
@@ -133,33 +134,65 @@ composable attribute functionality.
 If you want to store more information about your classes, you'll have
 to extend C<Moose::Meta::Class>. Doing so is simple, but you'll
 probably also want to provide some sugar, so see
-L<Moose::Cookbook::Meta::Recipe6> as well.
+L<Moose::Cookbook::Extending::Recipe2> as well.
 
-=item L<Moose::Cookbook::Meta::Recipe5> - The "table" attribute implemented via a metaclass trait
+=item L<Moose::Cookbook::Meta::Recipe5> - The "table" attribute implemented as a metaclass trait
 
-I<abstract goes here>
+This example takes the class metaclass we saw in the previous recipe
+and reimplements it as a metaclass trait.
+
+=item L<Moose::Cookbook::Meta::Recipe6> - Hooking into the immutabilization system (TODO)
+
+Moose has a feature known as "immutabilization". By calling C<<
+__PACKAGE__->meta()->make_immutable() >> after defining your class
+(attributes, roles, etc), you tell Moose to optimize things like
+object creation, attribute access, and so on.
 
-=item L<Moose::Cookbook::Meta::Recipe6> - I<meta-instance> (TODO)
+If you are creating your own metaclasses, you may need to hook into
+the immutabilization system. This cuts across a number of spots,
+including the metaclass class, meta method classes, and possibly the
+meta-instance class as well.
+
+This recipe shows you how to write extensions which immutabilize
+properly.
+
+=item L<Moose::Cookbook::Meta::Recipe7> - I<meta-instance> (TODO)
 
 I<abstract goes here>
 
+=back
+
 =head2 Extending Moose
 
 These recipes cover some more ways to extend Moose, and will be useful
 if you plan to write your own C<MooseX> module.
 
-=item L<Moose::Cookbook::Extending::Recipe1> - Providing an alternate base object class
+=over 4
+
+=item L<Moose::Cookbook::Extending::Recipe1> - Moose extension overview
+
+There are quite a number of ways to extend Moose. This recipe explains
+provides an overview of each method, and provides recommendations for
+when each is appropriate.
+
+=item L<Moose::Cookbook::Extending::Recipe2> - Providing a base object class role (TODO)
+
+Many base object class extensions can be implemented as roles. This
+example shows how to provide a base object class debugging role.
+
+=item L<Moose::Cookbook::Extending::Recipe3> - 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<extends
 'MyApp::Base'> over and over.
 
-=item L<Moose::Cookbook::Extending::Recipe2> - Acting like Moose.pm and providing sugar Moose-style
+=item L<Moose::Cookbook::Extending::Recipe4> - Acting like Moose.pm and providing sugar Moose-style
 
-You'll often find that you want to provide a replacement for
-C<Moose.pm> as part of a meta extension. This is especially true if
-you want to write default to your own metaclass or base object class.
+This recipe shows how to provide a replacement for C<Moose.pm>. You
+may want to do this as part of the API for a C<MooseX> module,
+especially if you want to default to a new metaclass class or base
+object class.
 
 =back