Commit | Line | Data |
471c4f09 |
1 | |
2 | =pod |
3 | |
4 | =head1 NAME |
5 | |
6 | Moose::Cookbook - How to cook a Moose |
7 | |
8 | =head1 DESCRIPTION |
9 | |
4711f5f7 |
10 | The Moose cookbook is a series of recipes taken from the Moose |
471c4f09 |
11 | test suite. Each recipe presents some code, which demonstrates |
12 | some of the features of Moose, and then proceeds to explain the |
13 | details of the code. |
14 | |
734d1752 |
15 | We also provide a L<Moose::Cookbook::FAQ> and a L<Moose::Cookbook::WTF> |
16 | for 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 |
26 | A 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 |
30 | A slightly more complex Moose class. Demonstrates using a method |
31 | modifier in a subclass. |
cb2478d4 |
32 | |
3824830b |
33 | =item L<Moose::Cookbook::Recipe3> - A lazy B<BinaryTree> example |
471c4f09 |
34 | |
f7f3648d |
35 | Demonstrates several attribute features, including types, weak |
36 | references, predicates ("does this object have a foo?"), defaults, and |
37 | lazy attribute construction. |
cb2478d4 |
38 | |
3824830b |
39 | =item L<Moose::Cookbook::Recipe4> - Subtypes, and modeling a simple B<Company> class hierarchy |
471c4f09 |
40 | |
f7f3648d |
41 | Introduces the creation and use of custom types, a C<BUILD> method, |
42 | and 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 |
46 | More type examples, including the use of type coercions. |
cb2478d4 |
47 | |
496b74ab |
48 | =item L<Moose::Cookbook::Recipe6> - The augment/inner example |
49 | |
f7f3648d |
50 | Demonstrates the use of C<augment> method modifiers, a way of turning |
51 | the usual method overriding style "inside-out". |
cb2478d4 |
52 | |
496b74ab |
53 | =item L<Moose::Cookbook::Recipe7> - Making Moose fast with immutable (TODO) |
54 | |
cb2478d4 |
55 | I<abstract goes here> |
56 | |
2be55428 |
57 | =item L<Moose::Cookbook::Recipe8> - Managing complex relations with trigger (TODO) |
496b74ab |
58 | |
cb2478d4 |
59 | I<abstract goes here> |
60 | |
2be55428 |
61 | Work 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 |
65 | I<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 |
75 | Demonstrates roles, which are also sometimes known as traits or |
76 | mix-ins. Roles provide a method of code re-use which is orthogonal to |
77 | subclassing. |
cb2478d4 |
78 | |
496b74ab |
79 | =item L<Moose::Cookbook::Recipe11> - Advanced Role Composition (TODO) |
80 | |
cb2478d4 |
81 | I<abstract goes here> |
82 | |
104379bc |
83 | =item L<Moose::Cookbook::Recipe12> - Runtime Role Composition (TODO) |
84 | |
cb2478d4 |
85 | I<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 |
95 | I<abstract goes here> |
96 | |
496b74ab |
97 | =item L<Moose::Cookbook::Recipe21> - The meta-attribute example |
98 | |
f7f3648d |
99 | One way to extend Moose is to provide your own attribute |
100 | metaclasses. Attribute metaclasses let you extend attribute |
101 | declarations (with C<has>) and behavior to provide additional |
102 | attribute functionality. |
cb2478d4 |
103 | |
496b74ab |
104 | =item L<Moose::Cookbook::Recipe22> - The meta-attribute trait example (TODO) |
a7d0cd00 |
105 | |
cb2478d4 |
106 | I<abstract goes here> |
107 | |
496b74ab |
108 | =item L<Moose::Cookbook::Recipe23> - The meta-instance example (TODO) |
24a8fe99 |
109 | |
cb2478d4 |
110 | I<abstract goes here> |
111 | |
496b74ab |
112 | =item L<Moose::Cookbook::Recipe24> - The meta-class example (TODO) |
1edfdf1c |
113 | |
cb2478d4 |
114 | I<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 | |
136 | Stevan Little E<lt>stevan@iinteractive.comE<gt> |
137 | |
138 | =head1 COPYRIGHT AND LICENSE |
139 | |
778db3ac |
140 | Copyright 2006-2008 by Infinity Interactive, Inc. |
471c4f09 |
141 | |
142 | L<http://www.iinteractive.com> |
143 | |
144 | This library is free software; you can redistribute it and/or modify |
145 | it under the same terms as Perl itself. |
146 | |
f7f3648d |
147 | =cut |