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