cleaning up stuff;
[gitmo/Moose.git] / lib / Moose / Cookbook.pod
CommitLineData
471c4f09 1
2=pod
3
4=head1 NAME
5
6Moose::Cookbook - How to cook a Moose
7
8=head1 DESCRIPTION
9
4711f5f7 10The Moose cookbook is a series of recipes taken from the Moose
471c4f09 11test suite. Each recipe presents some code, which demonstrates
12some of the features of Moose, and then proceeds to explain the
13details of the code.
14
734d1752 15We also provide a L<Moose::Cookbook::FAQ> and a L<Moose::Cookbook::WTF>
16for common questions and problems people have with Moose.
17
471c4f09 18=head1 RECIPES
19
496b74ab 20=head2 Basic Moose
21
471c4f09 22=over 4
23
3824830b 24=item L<Moose::Cookbook::Recipe1> - The (always classic) B<Point> example
471c4f09 25
f7f3648d 26A simple Moose-based class. Demonstrated Moose attributes and subclassing.
cb2478d4 27
3824830b 28=item L<Moose::Cookbook::Recipe2> - A simple B<BankAccount> example
471c4f09 29
f7f3648d 30A slightly more complex Moose class. Demonstrates using a method
31modifier in a subclass.
cb2478d4 32
3824830b 33=item L<Moose::Cookbook::Recipe3> - A lazy B<BinaryTree> example
471c4f09 34
f7f3648d 35Demonstrates several attribute features, including types, weak
36references, predicates ("does this object have a foo?"), defaults, and
37lazy attribute construction.
cb2478d4 38
3824830b 39=item L<Moose::Cookbook::Recipe4> - Subtypes, and modeling a simple B<Company> class hierarchy
471c4f09 40
f7f3648d 41Introduces the creation and use of custom types, a C<BUILD> method,
42and the use of C<override> in a subclass.
cb2478d4 43
3824830b 44=item L<Moose::Cookbook::Recipe5> - More subtypes, coercion in a B<Request> class
471c4f09 45
f7f3648d 46More type examples, including the use of type coercions.
cb2478d4 47
496b74ab 48=item L<Moose::Cookbook::Recipe6> - The augment/inner example
49
f7f3648d 50Demonstrates the use of C<augment> method modifiers, a way of turning
51the usual method overriding style "inside-out".
cb2478d4 52
496b74ab 53=item L<Moose::Cookbook::Recipe7> - Making Moose fast with immutable (TODO)
54
cb2478d4 55I<abstract goes here>
56
2be55428 57=item L<Moose::Cookbook::Recipe8> - Managing complex relations with trigger (TODO)
496b74ab 58
cb2478d4 59I<abstract goes here>
60
2be55428 61Work off of this http://code2.0beta.co.uk/moose/svn/Moose/trunk/t/200_examples/007_Child_Parent_attr_inherit.t
62
496b74ab 63=item L<Moose::Cookbook::Recipe9> - ??
64
cb2478d4 65I<abstract goes here>
66
496b74ab 67=back
68
69=head2 Moose Roles
70
71=over 4
72
73=item L<Moose::Cookbook::Recipe10> - The Moose::Role example
74
f7f3648d 75Demonstrates roles, which are also sometimes known as traits or
76mix-ins. Roles provide a method of code re-use which is orthogonal to
77subclassing.
cb2478d4 78
496b74ab 79=item L<Moose::Cookbook::Recipe11> - Advanced Role Composition (TODO)
80
cb2478d4 81I<abstract goes here>
82
104379bc 83=item L<Moose::Cookbook::Recipe12> - Runtime Role Composition (TODO)
84
cb2478d4 85I<abstract goes here>
86
496b74ab 87=back
88
89=head2 Meta Moose
90
91=over 4
92
93=item L<Moose::Cookbook::Recipe20> - Welcome to the meta-world (TODO)
94
cb2478d4 95I<abstract goes here>
96
496b74ab 97=item L<Moose::Cookbook::Recipe21> - The meta-attribute example
98
f7f3648d 99One way to extend Moose is to provide your own attribute
100metaclasses. Attribute metaclasses let you extend attribute
101declarations (with C<has>) and behavior to provide additional
102attribute functionality.
cb2478d4 103
496b74ab 104=item L<Moose::Cookbook::Recipe22> - The meta-attribute trait example (TODO)
a7d0cd00 105
cb2478d4 106I<abstract goes here>
107
496b74ab 108=item L<Moose::Cookbook::Recipe23> - The meta-instance example (TODO)
24a8fe99 109
cb2478d4 110I<abstract goes here>
111
496b74ab 112=item L<Moose::Cookbook::Recipe24> - The meta-class example (TODO)
1edfdf1c 113
cb2478d4 114I<abstract goes here>
115
116=back
117
118=head1 SNACKS
119
120=over 4
121
122=item L<Moose::Cookbook::Snack::Types>
123
471c4f09 124=back
125
126=head1 SEE ALSO
127
128=over 4
129
8bdc7f13 130=item L<http://www.gsph.com/index.php?Lang=En&ID=291>
471c4f09 131
132=back
133
134=head1 AUTHOR
135
136Stevan Little E<lt>stevan@iinteractive.comE<gt>
137
138=head1 COPYRIGHT AND LICENSE
139
778db3ac 140Copyright 2006-2008 by Infinity Interactive, Inc.
471c4f09 141
142L<http://www.iinteractive.com>
143
144This library is free software; you can redistribute it and/or modify
145it under the same terms as Perl itself.
146
f7f3648d 147=cut