bump copyright year to 2010
[gitmo/Moose.git] / lib / Moose / Cookbook / Meta / Recipe1.pod
index 37aac8c..af2c1a6 100644 (file)
@@ -7,30 +7,33 @@ Moose::Cookbook::Meta::Recipe1 - Welcome to the meta world (Why Go Meta?)
 
 =head1 SUMMARY
 
-If you've ever found yourself thinking "Moose is great, but I wish it
-did X differently", then you've gone meta. The meta recipes are all
-about how to change and extend the way Moose does its thing, by
-changing how the various meta classes (C<Moose::Meta::Class>,
-C<Moose::Meta::Attribute>, etc) work.
+You might want to read L<Moose::Manual::MOP> if you haven't done so
+yet.
 
-The metaclass system is a set of classes that describe classes, roles,
+If you've ever thought "Moose is great, but I wish it did X
+differently", then you've gone meta. The meta recipes demonstrate how
+to change and extend the way Moose works by extending and overriding
+how the meta classes (L<Moose::Meta::Class>,
+L<Moose::Meta::Attribute>, etc) work.
+
+The metaclass API is a set of classes that describe classes, roles,
 attributes, etc. The metaclass API lets you ask questions about a
 class, like "what attributes does it have?", or "what roles does the
 class do?"
 
-The metaclass system also lets you actively make changes to a class,
-for example by adding new methods.
+The metaclass system also lets you make changes to a class, for
+example by adding new methods or attributes.
 
-The interface with which you normally use Moose (C<has>, C<with>,
+The interface presented by L<Moose.pm|Moose> (C<has>, C<with>,
 C<extends>) is just a thin layer of syntactic sugar over the
 underlying metaclass system.
 
-By extending and changing how this metaclass system works, you can in
-effect create a modified object implementation for your classes.
+By extending and changing how this metaclass system works, you can
+create your own Moose variant.
 
 =head2 Examples
 
-Let's say that you want to additional properties to
+Let's say that you want to add additional properties to
 attributes. Specifically, we want to add a "label" property to each
 attribute, so we can write C<<
 My::Class->meta()->get_attribute('size')->label() >>. The first two
@@ -45,9 +48,9 @@ object, letting you write C<< My::Class->meta()->table_name() >>.
 =head1 SEE ALSO
 
 Many of the MooseX modules on CPAN implement metaclass extensions. A
-couple good examples include C<MooseX::Singleton> and
-C<MooseX::AttributeHelpers>. For a more complex example see
-C<Fey::ORM>.
+couple good examples include L<MooseX::Singleton> and
+L<MooseX::AttributeHelpers>. For a more complex example see
+L<Fey::ORM> or L<Reaction>.
 
 =head1 AUTHOR
 
@@ -55,7 +58,7 @@ Dave Rolsky E<lt>autarch@urth.org<gt>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2008 by Infinity Interactive, Inc.
+Copyright 2009-2010 by Infinity Interactive, Inc.
 
 L<http://www.iinteractive.com>