Mouse::Util::does_role() respects $thing->does() method
[gitmo/Mouse.git] / lib / Mouse / Spec.pm
index aed0492..09c2b53 100644 (file)
@@ -2,10 +2,10 @@ package Mouse::Spec;
 use strict;
 use warnings;
 
-our $VERSION = '0.50_02';
+our $VERSION = '0.95';
 
 our $MouseVersion = $VERSION;
-our $MooseVersion = '0.93';
+our $MooseVersion = '1.13';
 
 sub MouseVersion{ $MouseVersion }
 sub MooseVersion{ $MooseVersion }
@@ -19,7 +19,7 @@ Mouse::Spec - To what extent Mouse is compatible with Moose
 
 =head1 VERSION
 
-This document describes Mouse version 0.50_02
+This document describes Mouse version 0.95
 
 =head1 SYNOPSIS
 
@@ -31,24 +31,31 @@ This document describes Mouse version 0.50_02
 =head1 DESCRIPTION
 
 Mouse is a subset of Moose. This document describes to what extend Mouse is
-compatible with Moose.
+compatible (and incompatible) with Moose.
 
 =head2 Compatibility with Moose
 
-The sugary API is highly compatible with Moose.
+=head3 Sugary APIs
 
-=head2 Incompatibility with Moose
+The sugary APIs are highly compatible with Moose. Methods which have the
+same name as Moose's are expected to be compatible with Moose's.
 
 =head3 Meta object protocols
 
-Any MOP in Mouse has no attributes.
+Meta object protocols are a subset of the counterpart of Moose.
+Their methods which have the same name as Moose's are expected to be
+compatible with Moose's. Feel free to use these methods even if they
+are not documented.
 
-For this reason, C<< $metaclass->meta->make_immutable() >> does not yet work as you expect.
+However, there are differences between Moose's MOP and Mouse's.
+For example, meta object protocols in Mouse have no attributes by default,
+so C<< $metaclass->meta->make_immutable() >> will not work as you expect.
 B<Don not make metaclasses immutable>.
 
 =head3 Mouse::Meta::Instance
 
-Meta instance mechanism is not implemented.
+Meta instance mechanism is not implemented, so you cannot change the reftype
+of Mouse objects in the same way as Moose.
 
 =head3 Role exclusion
 
@@ -59,6 +66,14 @@ Role exclusion, C<exclude()>, is not implemented.
 C<< use Mouse -metaclass => ... >> are not implemented.
 Use C<< use Mouse -traits => ... >> instead.
 
+=head3 Mouse::Meta::Attribute::Native
+
+Native traits are not supported directly, but C<MouseX::NativeTraits> is
+available on CPAN. Once you have installed it, you can use it as the same way
+in Moose. That is, native traits are automatically loaded by Mouse.
+
+See L<MouseX::NativeTraits> for details.
+
 =head2 Notes about Moose::Cookbook
 
 Many recipes in L<Moose::Cookbook> fit L<Mouse>, including: