re-word the Trait/Role differentiation text to explain Traits are Roles applied to...
Chris Prather [Wed, 8 Jul 2009 14:21:33 +0000 (10:21 -0400)]
lib/Moose/Cookbook/Extending/Recipe1.pod

index 46dd5fe..a20a1b7 100644 (file)
@@ -109,13 +109,12 @@ this works. These both build on top of the L<MooseX::Types> extension.
 
 =head1 ROLES VS TRAITS VS SUBCLASSES
 
-It is important to understand that B<roles and traits are the same
-thing>. A role can be used as a trait, and a trait is a role. The only
-thing that distinguishes the two is that a trait is packaged in a way
-that lets Moose resolve a short name to a class name. In other words,
-with a trait, the caller can refer to it by a short name like "Big",
-and Moose will resolve it to a class like
-C<MooseX::Embiggen::Meta::Attribute::Role::Big>.
+It is important to understand that B<roles and traits are the same thing>. A
+trait is simply a role applied to a metaclass. The only thing that may
+distinguish the two is that a trait can be packaged in a way that lets Moose
+resolve a short name to a class name. In other words, with a trait, the caller
+can refer to it by a short name like "Big", and Moose will resolve it to a
+class like C<MooseX::Embiggen::Meta::Attribute::Role::Big>.
 
 See L<Moose::Cookbook::Meta::Recipe3> and
 L<Moose::Cookbook::Meta::Recipe5> for examples of traits in action. In