3 * concepts (ala Moose::Manual::Concepts)
7 * Making a class use Moose
11 ** has 'foo' => ( is => ... ) (ro & rw)
12 ** no other attribute features yet
18 * Build a Person class that uses Moose
21 ** assume both attributes are always provided
22 * build an Employee class that is a subclass of Person
30 * consuming roles in classes
31 * consuming roles in roles
36 * build a role for Human
37 * make the Person class consume the role
38 * make the role require a "full_name" method
39 * implement this method for Person
40 * override it for Employee to include their title
50 * attribute inheritance
51 * MX attribute naming modules
55 * Go back to Person class
56 ** make first & last name required
58 ** make title default to "Worker"
59 ** add predicate & clearer for title
60 ** add salary_level attribute, number from 1-10
61 ** salary, lazy default of salary_level * 1,000, init_arg is undef
66 ** before for state validation
67 ** after for additional state changes
69 ** modifying arguments & return values
75 * methods and attributes
76 * method modifiers (and requiring the wrapped method)
84 * parameterizable types
88 ** class names & role names
90 * attribute isa & does