s/die/croak/
[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
496b74ab 57=item L<Moose::Cookbook::Recipe8> - ??
58
cb2478d4 59I<abstract goes here>
60
496b74ab 61=item L<Moose::Cookbook::Recipe9> - ??
62
cb2478d4 63I<abstract goes here>
64
496b74ab 65=back
66
67=head2 Moose Roles
68
69=over 4
70
71=item L<Moose::Cookbook::Recipe10> - The Moose::Role example
72
f7f3648d 73Demonstrates roles, which are also sometimes known as traits or
74mix-ins. Roles provide a method of code re-use which is orthogonal to
75subclassing.
cb2478d4 76
496b74ab 77=item L<Moose::Cookbook::Recipe11> - Advanced Role Composition (TODO)
78
cb2478d4 79I<abstract goes here>
80
104379bc 81=item L<Moose::Cookbook::Recipe12> - Runtime Role Composition (TODO)
82
cb2478d4 83I<abstract goes here>
84
496b74ab 85=back
86
87=head2 Meta Moose
88
89=over 4
90
91=item L<Moose::Cookbook::Recipe20> - Welcome to the meta-world (TODO)
92
cb2478d4 93I<abstract goes here>
94
496b74ab 95=item L<Moose::Cookbook::Recipe21> - The meta-attribute example
96
f7f3648d 97One way to extend Moose is to provide your own attribute
98metaclasses. Attribute metaclasses let you extend attribute
99declarations (with C<has>) and behavior to provide additional
100attribute functionality.
cb2478d4 101
496b74ab 102=item L<Moose::Cookbook::Recipe22> - The meta-attribute trait example (TODO)
a7d0cd00 103
cb2478d4 104I<abstract goes here>
105
496b74ab 106=item L<Moose::Cookbook::Recipe23> - The meta-instance example (TODO)
24a8fe99 107
cb2478d4 108I<abstract goes here>
109
496b74ab 110=item L<Moose::Cookbook::Recipe24> - The meta-class example (TODO)
1edfdf1c 111
cb2478d4 112I<abstract goes here>
113
114=back
115
116=head1 SNACKS
117
118=over 4
119
120=item L<Moose::Cookbook::Snack::Types>
121
471c4f09 122=back
123
124=head1 SEE ALSO
125
126=over 4
127
8bdc7f13 128=item L<http://www.gsph.com/index.php?Lang=En&ID=291>
471c4f09 129
130=back
131
132=head1 AUTHOR
133
134Stevan Little E<lt>stevan@iinteractive.comE<gt>
135
136=head1 COPYRIGHT AND LICENSE
137
778db3ac 138Copyright 2006-2008 by Infinity Interactive, Inc.
471c4f09 139
140L<http://www.iinteractive.com>
141
142This library is free software; you can redistribute it and/or modify
143it under the same terms as Perl itself.
144
f7f3648d 145=cut