X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose.pm;h=02e70000b15a9109f347ab30e036c4999433c832;hb=8de5717850eb1f406e5f71d2ccfac33c72cc490b;hp=3a35baf3d2d5f153f48717ff670c32c62cc6a19e;hpb=ed5d4812547cdbda8cb46bde33e34064a84b52ee;p=gitmo%2FMoose.git diff --git a/lib/Moose.pm b/lib/Moose.pm index 3a35baf..02e7000 100644 --- a/lib/Moose.pm +++ b/lib/Moose.pm @@ -4,7 +4,7 @@ use warnings; use 5.008; -our $VERSION = '0.89'; +our $VERSION = '0.92'; $VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; @@ -13,7 +13,7 @@ use Carp 'confess'; use Moose::Exporter; -use Class::MOP 0.92; +use Class::MOP 0.94; use Moose::Meta::Class; use Moose::Meta::TypeConstraint; @@ -43,46 +43,42 @@ sub throw_error { } sub extends { - my $class = shift; + my $meta = shift; Moose->throw_error("Must derive at least one class") unless @_; # this checks the metaclass to make sure # it is correct, sometimes it can get out # of sync when the classes are being built - Moose::Meta::Class->initialize($class)->superclasses(@_); + $meta->superclasses(@_); } sub with { - my $class = shift; - Moose::Util::apply_all_roles(Class::MOP::Class->initialize($class), @_); + Moose::Util::apply_all_roles(shift, @_); } sub has { - my $class = shift; - my $name = shift; + my $meta = shift; + my $name = shift; Moose->throw_error('Usage: has \'name\' => ( key => value, ... )') if @_ % 2 == 1; my %options = ( definition_context => Moose::Util::_caller_info(), @_ ); my $attrs = ( ref($name) eq 'ARRAY' ) ? $name : [ ($name) ]; - Class::MOP::Class->initialize($class)->add_attribute( $_, %options ) for @$attrs; + $meta->add_attribute( $_, %options ) for @$attrs; } sub before { - my $class = shift; - Moose::Util::add_method_modifier($class, 'before', \@_); + Moose::Util::add_method_modifier(shift, 'before', \@_); } sub after { - my $class = shift; - Moose::Util::add_method_modifier($class, 'after', \@_); + Moose::Util::add_method_modifier(shift, 'after', \@_); } sub around { - my $class = shift; - Moose::Util::add_method_modifier($class, 'around', \@_); + Moose::Util::add_method_modifier(shift, 'around', \@_); } our $SUPER_PACKAGE; @@ -97,9 +93,9 @@ sub super { } sub override { - my $class = shift; + my $meta = shift; my ( $name, $method ) = @_; - Class::MOP::Class->initialize($class)->add_override_method_modifier( $name => $method ); + $meta->add_override_method_modifier( $name => $method ); } sub inner { @@ -117,14 +113,14 @@ sub inner { } sub augment { - my $class = shift; + my $meta = shift; my ( $name, $method ) = @_; - Class::MOP::Class->initialize($class)->add_augment_method_modifier( $name => $method ); + $meta->add_augment_method_modifier( $name => $method ); } Moose::Exporter->setup_import_methods( - with_caller => [ - qw( extends with has before after around override augment) + with_meta => [ + qw( extends with has before after around override augment ) ], as_is => [ qw( super inner ), @@ -175,7 +171,7 @@ sub init_meta { my $ancestor_meta = Class::MOP::get_metaclass_by_name($ancestor) || next; my $ancestor_meta_class = ($ancestor_meta->is_immutable - ? $ancestor_meta->get_mutable_metaclass_name + ? $ancestor_meta->_get_mutable_metaclass_name : ref($ancestor_meta)); # if we have an ancestor metaclass that inherits $metaclass, we use @@ -339,6 +335,16 @@ is to search for them (L), or to examine L which aims to keep an up-to-date, easily installable list of Moose extensions. +=head1 TRANSLATIONS + +Much of the Moose documentation has been translated into other languages. + +=over 4 + +=item L + +=back + =head1 BUILDING CLASSES WITH MOOSE Moose makes every attempt to provide as much convenience as possible during @@ -546,13 +552,13 @@ You may also use an array reference to curry arguments to the original method. has 'thing' => ( ... - handles => { set_foo => [ set => [ 'foo' ] ] }, + handles => { set_foo => [ set => 'foo' ] }, ); # $self->set_foo(...) calls $self->thing->set('foo', ...) The first element of the array reference is the original method name, and the -second is an array reference of curried arguments. +rest is a list of curried arguments. =item C @@ -621,7 +627,7 @@ example. The value of this key is the name of the method that will be called to obtain the value used to initialize the attribute. See the L - and/or L for more information. + and/or L for more information. =item I => SCALAR | CODE @@ -1121,6 +1127,14 @@ Shawn (sartak) Moore Esartak@bestpractical.comE Dave (autarch) Rolsky Eautarch@urth.orgE +Jesse (doy) Luehrs Edoy at tozt dot netE + +Hans Dieter (confound) Pearcey Ehdp@pobox.comE + +Chris (perigrin) Prather + +Florian Ragwitz Erafl@debian.orgE + =head2 OTHER CONTRIBUTORS Aankhen @@ -1133,8 +1147,6 @@ Nathan (kolibrie) Gray Christian (chansen) Hansen -Hans Dieter (confound) Pearcey - Eric (ewilhelm) Wilhelm Guillermo (groditi) Roditi @@ -1151,8 +1163,6 @@ Scott (konobi) McWhirter Shlomi (rindolf) Fish -Chris (perigrin) Prather - Wallace (wreis) Reis Jonathan (jrockway) Rockway