requires => {
'Scalar::Util' => $win32 ? '1.17' : '1.18',
'Carp' => '0',
- 'Class::MOP' => '0.35',
+ 'Class::MOP' => '0.36',
'Sub::Name' => '0.02',
'Sub::Exporter' => '0.954',
'Sub::Install' => '0.92',
Revision history for Perl extension Moose
-0.15
+0.15 Sun. Nov. 5, 2006
++ NOTE ++
This version of Moose *must* have Class::MOP 0.36 in order
to work correctly. A number of small internal tweaks have
-use lib '/Users/stevan/Projects/Moose/Moose/Class-MOP/trunk/lib';
-
package Moose;
use strict;
fact of life. This can be hairy in production, so if this makes
you quake with fear, you might want to wait a few months.
-Then comes speed of execution. Moose is actually pretty fast,
-and makes great effort to stay out of your way when you don't
-want it there. However, certain parts of Moose are slow, such
-as compile time setup, introspection and object construction
-(only because it uses introspection). See L<Is Moose slow?>
-below for a deeper discussion on the subject.
+Then comes speed of execution. In some ways, Moose is actually
+pretty fast and makes great effort to stay out of your way when
+you don't want it there. However, certain parts of Moose are
+slow, such as compile time setup, introspection and object
+construction (only because it uses introspection). See
+L<Is Moose slow?> below for a deeper discussion on the subject.
=head3 Is Moose's API stable?
=head1 NAME
-=head1 SYNOPOSIS
+Moose::Meta::Method - A Moose Method metaclass
=head1 DESCRIPTION
-=head1 METHODS
-
-=over 4
-
-=back
+For now, this is nothing but a subclass of Class::MOP::Method,
+but with the expanding role of the method sub-protocol, it might
+be more useful later on.
=head1 BUGS
-use lib '/Users/stevan/Projects/Moose/Moose/Class-MOP/trunk/lib';
-
package Moose::Meta::Method::Accessor;
use strict;
=head1 NAME
-=head1 SYNOPOSIS
+Moose::Meta::Method::Accessor - A Moose Method metaclass for accessors
=head1 DESCRIPTION
+This is a subclass of L<Class::MOP::Method::Accessor> and it's primary
+responsibility is to generate the accessor methods for attributes. It
+can handle both closure based accessors, as well as inlined source based
+accessors.
+
+This is a fairly new addition to the MOP, but this will play an important
+role in the optimization strategy we are currently following.
+
=head1 METHODS
=over 4
-=item B<generate_accessor_method>
-
=item B<generate_accessor_method_inline>
-=item B<generate_reader_method>
-
=item B<generate_reader_method_inline>
-=item B<generate_writer_method>
-
=item B<generate_writer_method_inline>
=back
=head1 NAME
-=head1 SYNOPOSIS
+Moose::Meta::Method::Overriden - A Moose Method metaclass for overriden methods
=head1 DESCRIPTION
-=head1 METHODS
+This is primarily used to tag methods created with the C<override> keyword. It
+is currently just a subclass of L<Moose::Meta::Method>.
-=over 4
-
-=back
+Later releases will likely encapsulate the C<super> behavior of overriden methods,
+rather than that being the responsibility of the class. But this is low priority
+for now.
=head1 BUGS
=head1 NAME
-=head1 SYNOPOSIS
+Moose::Meta::Role::Method - A Moose Method metaclass for Roles
=head1 DESCRIPTION
-=head1 METHODS
-
-=over 4
-
-=back
+This is primarily used to mark methods coming from a role
+as being different. Right now it is nothing but a subclass
+of L<Class::MOP::Method>.
=head1 BUGS
=head1 NAME
-=head1 SYNOPOSIS
+Moose::Meta::TypeConstraint::Union - A union of Moose type constraints
=head1 DESCRIPTION
+This metaclass represents a union of Moose type constraints. More
+details to be explained later (possibly in a Cookbook::Recipe).
+
+This actually used to be part of Moose::Meta::TypeConstraint, but it
+is now better off in it's own file.
+
=head1 METHODS
+This class is not a subclass of Moose::Meta::TypeConstraint,
+but it does provide the same API
+
=over 4
-=item B<check>
+=item B<meta>
-=item B<coerce>
+=item B<new>
-=item B<coercion>
+=item B<name>
+
+=item B<type_constraints>
=item B<constraint>
-=item B<has_coercion>
+=back
-=item B<has_message>
+=head2 Overriden methods
+
+=over 4
+
+=item B<check>
+
+=item B<coerce>
+
+=item B<validate>
=item B<is_a_type_of>
=item B<is_subtype_of>
-=item B<message>
+=back
-=item B<meta>
+=head2 Empty or Stub methods
-=item B<name>
+These methods tend to not be very relevant in
+the context of a union. Either that or they are
+just difficult to specify and not very useful
+anyway. They are here for completeness.
-=item B<new>
+=over 4
=item B<parent>
-=item B<type_constraints>
+=item B<coercion>
-=item B<validate>
+=item B<has_coercion>
+
+=item B<message>
+
+=item B<has_message>
=back