take a stab at a description
[gitmo/MooseX-MetaDescription.git] / lib / MooseX / MetaDescription.pm
1 package MooseX::MetaDescription;
2 use Moose;
3
4 our $VERSION   = '0.01';
5 our $AUTHORITY = 'cpan:STEVAN';
6
7 use MooseX::MetaDescription::Meta::Class;
8 use MooseX::MetaDescription::Meta::Attribute;
9 use MooseX::MetaDescription::Description;
10
11 no Moose; 1;
12
13 __END__
14
15 =pod
16
17 =head1 NAME
18
19 MooseX::MetaDescription - A framework for adding additional metadata to Moose classes
20
21 =head1 SYNOPSIS
22
23     package Foo;
24     use metaclass 'MooseX::MetaDescription::Meta::Class';
25     use Moose;
26
27     __PACKAGE__->meta->description->{'Hello'} = 'World';
28
29     has 'bar' => (
30         metaclass   => 'MooseX::MetaDescription::Meta::Attribute',
31         is          => 'ro',
32         isa         => 'Str',   
33         default     => sub { 'Foo::bar' },
34         description => {
35             baz   => 'Foo::bar::baz',
36         }
37     );
38
39     ...
40     
41     $foo->meta->description; # { 'Hello' => 'World' }
42     $foo->meta->get_attribute('bar')->description; # { baz   => 'Foo::bar::baz' }    
43
44 =head1 DESCRIPTION
45
46 MooseX::MetaDescription allows you to add arbitrary out of band metadata to your Moose classes and attributes.
47
48 =head1 METHODS 
49
50 =over 4
51
52 =item B<>
53
54 =back
55
56 =head1 BUGS
57
58 All complex software has bugs lurking in it, and this module is no 
59 exception. If you find a bug please either email me, or add the bug
60 to cpan-RT.
61
62 =head1 AUTHOR
63
64 Code and Design originally by Jonathan Rockway in the Ernst module, 
65 extracted and refactored by:
66
67 Stevan Little E<lt>stevan.little@iinteractive.comE<gt>
68
69 =head1 COPYRIGHT AND LICENSE
70
71 Copyright 2008 Infinity Interactive, Inc.
72
73 L<http://www.iinteractive.com>
74
75 This library is free software; you can redistribute it and/or modify
76 it under the same terms as Perl itself.
77
78 =cut