80ad77d975085cc73ea7cc6b567f6862eaba1800
[gitmo/Mouse.git] / lib / Mouse / Spec.pm
1 package Mouse::Spec;
2 use strict;
3 use warnings;
4
5 our $VERSION = '0.40_09';
6
7 our $MouseVersion = $VERSION;
8 our $MooseVersion = '0.93';
9
10 sub MouseVersion{ $MouseVersion }
11 sub MooseVersion{ $MooseVersion }
12
13 1;
14 __END__
15
16 =head1 NAME
17
18 Mouse::Spec - To what extent Mouse is compatible with Moose
19
20 =head1 VERSION
21
22 This document describes Mouse version 0.40_09
23
24 =head1 SYNOPSIS
25
26     use Mouse::Spec;
27
28     printf "Mouse/%s is compatible with Moose/%s\n",
29         Mouse::Spec->MouseVersion, Mouse::Spec->MooseVersion;
30
31 =head1 DESCRIPTION
32
33 (TODO)
34
35 =head2 Compatibility with Moose
36
37 =head2 Incompatibility with Moose
38
39 =head3 Meta object protocols
40
41 Any MOP has no attributes, so
42 C<< $metaclass->meta->make_immutable() >> does not yet work as you expect.
43
44 =head3 Mouse::Meta::Instance
45
46 Meta instance mechanism is not implemented.
47
48 =head3 Role exclusion
49
50 Role exclusion, C<exclude()>, is not implemented.
51
52 =head3 -traits and -metaclass in Mouse::Exporter
53
54 C<< use Mouse -traits => ... >> and C<< use Mouse -metaclass => ... >> are not
55 yet implemented.
56
57 =head2 Notes about Moose::Cookbook
58
59 Many recipes in L<Moose::Cookbook> fit L<Mouse>, including:
60
61 =over 4
62
63 =item *
64
65 L<Moose::Cookbook::Basics::Recipe1> - The (always classic) B<Point> example
66
67 =item *
68
69 L<Moose::Cookbook::Basics::Recipe2> - A simple B<BankAccount> example\r
70
71 =item *
72
73 L<Moose::Cookbook::Basics::Recipe3> - A lazy B<BinaryTree> example
74
75 =item *
76
77 L<Moose::Cookbook::Basics::Recipe4> - Subtypes, and modeling a simple B<Company> class hierarchy
78
79 =item *
80
81 L<Moose::Cookbook::Basics::Recipe5> - More subtypes, coercion in a B<Request> class\r
82
83 =item *
84
85 L<Moose::Cookbook::Basics::Recipe6> - The augment/inner example\r
86
87 =item *
88
89 L<Moose::Cookbook::Basics::Recipe7> - Making Moose fast with immutable\r
90
91 =item *
92
93 L<Moose::Cookbook::Basics::Recipe8> - Builder methods and lazy_build\r
94
95 =item *
96
97 L<Moose::Cookbook::Basics::Recipe9> - Operator overloading, subtypes, and coercion\r
98
99 =item *
100
101 L<Moose::Cookbook::Basics::Recipe10> - Using BUILDARGS and BUILD to hook into object construction\r
102
103 =item *
104
105 L<Moose::Cookbook::Roles::Recipe1> - The Moose::Role example\r
106
107 =item *
108
109 L<Moose::Cookbook::Roles::Recipe2> - Advanced Role Composition - method exclusion and aliasing
110
111 =item *
112
113 L<Moose::Cookbook::Roles::Recipe3> - Applying a role to an object instance\r
114
115 =item *
116
117 L<Moose::Cookbook::Meta::Recipe2> - A meta-attribute, attributes with labels\r
118
119 =item *
120
121 L<Moose::Cookbook::Meta::Recipe3> - Labels implemented via attribute traits\r
122
123 =item *
124
125 L<Moose::Cookbook::Extending::Recipe3> - Providing an alternate base object class\r
126
127 =back
128
129 =head1 SEE ALSO
130
131 L<Mouse>
132
133 L<Moose>
134
135 L<Moose::Manual>
136
137 L<Moose::Cookbook>
138
139 =cut
140