38dc0b10bf0ae0a066461b12357ca08ad86eddfc
[gitmo/moose-presentations.git] / moose-class / exercises / README
1 DIRECTORY CONTENTS
2 ==================
3
4 This tarball contains exercises for the Intro to Moose class. Here's
5 what's what ...
6
7 t/*.t - each .t file contains instructions on what the exercise is,
8 and runs the tests to check your code.
9
10 t/lib - includes a recent (enough) copy of the Test-Harness and Test-Simple
11 distributions so we're all on the same page, as well as some other modules
12 used in the tests.
13
14 t/lib/MooseClass/Tests.pm - the actual tests all live in this
15 module. It also shows many examples of how to use Moose's metaclass
16 APIs for introspection.
17
18 bin/prove - a slightly hacked version of prove that makes sure to look
19 in t/lib first. If you have a recent version of prove installed, this
20 can be ignored, but it's worth trying if you have any weird problems.
21
22 lib - this will be your working directory for most exercises. You'll
23 be creating various classes and roles in here, and then testing
24 against the test code.
25
26 answers - code that passes all the tests for each section. You can
27 look in here if you're stuck, or if you just want to see how someone
28 else did these exercises.
29
30 install-moose and moosepan/ - a local CPAN mirror with just Moose and
31 its dependencies. See below for usage instructions.
32
33
34 INSTALLING MOOSE AND ITS DEPENDENCIES
35 =====================================
36
37 This directory contains a partial CPAN mirror that will allow you to
38 install Moose and all of its dependencies. Just run:
39
40   /path/to/perl install-moose
41
42 and it will use this mirror to install the latest version of Moose on
43 your system.
44
45 This assumes that you have already configured the CPAN shell on your
46 system in the past. If you haven't, it may still work, or it may
47 prompt you for a bunch of configuration items first.
48
49 This script may try to connect to the net (even though it shouldn't). If you
50 are behind a firewall that requires a proxy for http, this may cause the script
51 to simply hang.
52
53 In that case, try setting the "http_proxy" environment variable to appropriate
54 value before running the script.
55
56 WINDOWS USERS
57 ============
58
59 The above installation script may only work with strawberry perl, and has not
60 been tested with ActiveState.
61
62 If you are using ActiveState, please install Moose from an appropriate PPM
63 repository.
64
65 EXERCISES HOW-TO
66 ================
67
68 The exercises are all (except for one) designed to be done in the form
69 of writing Perl modules and running tests against them.
70
71 You will create these modules in the lib/ directory. You will often
72 find yourself changing or extending the module you created in a
73 previous exercise, so don't delete anything from this directory as you
74 go.
75
76 The instructions on each exercise are in the associated .t file.
77
78 To run the tests, simply run this command:
79
80   /path/to/perl bin/prove -lv t/test-name.t
81
82 The test file name will be something like 01-classes.t.
83
84 The tests will run in verbose mode, so you will get clues as to what
85 exactly failed. Keep iterating on your code until the tests pass.