From: Dave Rolsky Date: Tue, 9 Dec 2008 23:40:24 +0000 (+0000) Subject: Just sticking this here for my own benefit X-Git-Tag: 0.66~27^2~43 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=56242e5e02bd447f5c3617f7eb77f62559b8d684;p=gitmo%2FMoose.git Just sticking this here for my own benefit --- diff --git a/grant-description b/grant-description new file mode 100644 index 0000000..a1868c1 --- /dev/null +++ b/grant-description @@ -0,0 +1,67 @@ +1. Write a set of Moose::Intro::* documentation. This would be a major +expansion of the documentation currently in Moose::Intro. These docs +will explain concepts in detail, and also explain why and when someone +would choose to use a particular feature. + +This differs from the cookbook, which is primarily aimed at showing +examples of features in code, and then walking through that code. + +The intro docs would include the following: + + * Moose::Intro::Attributes - what are attributes and how are they + used? This piece of documentation would show all the different + features available for attributes, including the "initializer", + "clearer", "predicate", triggers, etc. It's likely that this + will end up being split into two or three separate documents, + since Moose has quite a lot of attribute-related features. For + example, delegation could easily be in its own document, and it + may make sense to split features into a "basic" and "advanced" + set. + + * Moose::Intro::Subclassing - subclassing the Moose + way. Subclassing in Moose is very simple, but different from the + "old school" Perl 5 way. + + * Moose::Intro::MethodModifiers - a detailed discussion of each + type of method modifier with explanations of when each is + appropriate. + + * Moose::Intro::MooseObject - details of how Moose::Object works + and the features it provides for its subclasses. In particular, + this documentation would focus on how to use the BUILD, + BUILDARGS, and DEMOLISH methods. + + * Moose::Intro::Roles - an explanation of what roles are and + discussion of when to use them. This document would discuss how + to apply multiple roles to classes, how to apply roles to other + roles, and also how to apply roles to an instantiated object. + + * Moose::Intro::Types - an explanation of Moose's type + system. This will include information on how and when to create + your own types, and how to use coercion. + + * Moose::Intro::Introspection - what are metaclasses, + meta-attributes, etc? This document will explain what the + metaclasses are, and talk about how they can be used for + introspection. + + * Moose::Intro::MooseX - an overview of some useful MooseX + modules, specifically MooseX::AttributeHelpers, + MooseX::StrictConstructor, MooseX::Params::Validate, and + MooseX::Types. + +2. Revise all of the existing cookbook recipes for clarity and +simplicity. I've already done this for a few recipes, but there are +quite a few left to do. + +3. Write the recipes marked as TODO: + + * Moose::Cookbook::Basics::Recipe8 - Managing complex relations with trigger + * Moose::Cookbook::Basics::Recipe11 - BUILD and BUILDARGS + * Moose::Cookbook::Roles::Recipe3 - Runtime Role Composition + * Moose::Cookbook::Meta::Recipe6 - Hooking into the immutabilization system + * Moose::Cookbook::Meta::Recipe7 - Custom meta-instances + +4. Complete API docs for all Moose and Class::MOP classes. Many of +these classes have POD which simply lists their methods, without any +explanation of what these methods do. \ No newline at end of file