Update MANIFEST.SKIP
[gitmo/Mouse.git] / lib / Mouse / Spec.pm
CommitLineData
d3f79b34 1package Mouse::Spec;
d3f79b34 2use strict;
43e6a50b 3use warnings;
d3f79b34 4
d5888732 5our $VERSION = '0.68';
d3f79b34 6
7our $MouseVersion = $VERSION;
29012b56 8our $MooseVersion = '1.10';
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
d5888732 22This document describes Mouse version 0.68
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
503ed648 34compatible (and incompatible) with Moose.
ff012e5d 35
36=head2 Compatibility with Moose
37
503ed648 38The sugary API is highly compatible with Moose. Methods which have the
39same name as Moose's are expected to be compatible with Moose's.
dad32ff2 40
ff012e5d 41=head2 Incompatibility with Moose
42
43=head3 Meta object protocols
44
503ed648 45Meta object protocols are a subset of the counterpart of Moose.
46Their methods which have the same name as Moose's are expected to be
47compatible with Moose's. Feel free to use these methods even if they
48are not documented.
dad32ff2 49
503ed648 50However, meta object protocols in Mouse have no attributes by default,
51so C<< $metaclass->meta->make_immutable() >> will not work as you expect.
f6387355 52B<Don not make metaclasses immutable>.
ff012e5d 53
de236787 54=head3 Mouse::Meta::Instance
ff012e5d 55
4f74e488 56Meta instance mechanism is not implemented.
57
58=head3 Role exclusion
59
60Role exclusion, C<exclude()>, is not implemented.
61
dad32ff2 62=head3 -metaclass in Mouse::Exporter
4f74e488 63
dad32ff2 64C<< use Mouse -metaclass => ... >> are not implemented.
65Use C<< use Mouse -traits => ... >> instead.
a25ca8d6 66
4fbbc656 67=head3 Mouse::Meta::Attribute::Native
68
69Native traits are not supported directly, but C<MouseX::NativeTraits> is
70available on CPAN. Once you have installed it, you can use it as the same way
71in Moose. That is, native traits are automatically loaded by Mouse.
72
73See L<MouseX::NativeTraits> for details.
74
7fc043cc 75=head2 Notes about Moose::Cookbook
76
77Many recipes in L<Moose::Cookbook> fit L<Mouse>, including:
78
79=over 4
80
81=item *
82
83L<Moose::Cookbook::Basics::Recipe1> - The (always classic) B<Point> example
84
85=item *
86
278448b8 87L<Moose::Cookbook::Basics::Recipe2> - A simple B<BankAccount> example
7fc043cc 88
89=item *
90
91L<Moose::Cookbook::Basics::Recipe3> - A lazy B<BinaryTree> example
92
93=item *
94
95L<Moose::Cookbook::Basics::Recipe4> - Subtypes, and modeling a simple B<Company> class hierarchy
96
97=item *
98
278448b8 99L<Moose::Cookbook::Basics::Recipe5> - More subtypes, coercion in a B<Request> class
7fc043cc 100
101=item *
102
278448b8 103L<Moose::Cookbook::Basics::Recipe6> - The augment/inner example
7fc043cc 104
105=item *
106
278448b8 107L<Moose::Cookbook::Basics::Recipe7> - Making Moose fast with immutable
7fc043cc 108
109=item *
110
278448b8 111L<Moose::Cookbook::Basics::Recipe8> - Builder methods and lazy_build
7fc043cc 112
113=item *
114
278448b8 115L<Moose::Cookbook::Basics::Recipe9> - Operator overloading, subtypes, and coercion
7fc043cc 116
117=item *
118
278448b8 119L<Moose::Cookbook::Basics::Recipe10> - Using BUILDARGS and BUILD to hook into object construction
7fc043cc 120
121=item *
122
278448b8 123L<Moose::Cookbook::Roles::Recipe1> - The Moose::Role example
7fc043cc 124
125=item *
126
8006ea01 127L<Moose::Cookbook::Roles::Recipe2> - Advanced Role Composition - method exclusion and aliasing
7fc043cc 128
129=item *
130
278448b8 131L<Moose::Cookbook::Roles::Recipe3> - Applying a role to an object instance
7fc043cc 132
133=item *
134
278448b8 135L<Moose::Cookbook::Meta::Recipe2> - A meta-attribute, attributes with labels
7fc043cc 136
137=item *
138
278448b8 139L<Moose::Cookbook::Meta::Recipe3> - Labels implemented via attribute traits
7fc043cc 140
141=item *
142
278448b8 143L<Moose::Cookbook::Extending::Recipe3> - Providing an alternate base object class
7fc043cc 144
145=back
146
147=head1 SEE ALSO
148
149L<Mouse>
150
de236787 151L<Moose>
152
153L<Moose::Manual>
154
155L<Moose::Cookbook>
156
7fc043cc 157=cut
158