bump version to 0.91
[gitmo/Moose.git] / lib / Moose.pm
index 1cc6645..ce94027 100644 (file)
@@ -4,7 +4,7 @@ use warnings;
 
 use 5.008;
 
-our $VERSION   = '0.88';
+our $VERSION   = '0.91';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
@@ -13,7 +13,7 @@ use Carp         'confess';
 
 use Moose::Exporter;
 
-use Class::MOP 0.89;
+use Class::MOP 0.93;
 
 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<http://search.cpan.org/search?query=MooseX::>),
 or to examine L<Task::Moose> 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<http://github.com/jpa/Moose-Doc-JA>
+
+=back
+
 =head1 BUILDING CLASSES WITH MOOSE
 
 Moose makes every attempt to provide as much convenience as possible during
@@ -459,8 +465,10 @@ This is only legal if your C<isa> option is either C<ArrayRef> or C<HashRef>.
 
 The I<trigger> option is a CODE reference which will be called after
 the value of the attribute is set. The CODE ref will be passed the
-instance itself and the updated value. You B<can> have a trigger on
-a read-only attribute.
+instance itself and the updated value. If the attribute already had a
+value, this will be passed as the third value to the trigger.
+
+You B<can> have a trigger on a read-only attribute.
 
 B<NOTE:> Triggers will only fire when you B<assign> to the attribute,
 either in the constructor, or using the writer. Default and built values will
@@ -544,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<REGEXP>
 
@@ -619,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<builder
 option docs in Class::MOP::Attribute|Class::MOP::Attribute/builder>
- and/or L<Moose::Cookbook::Basics::Recipe9> for more information.
+ and/or L<Moose::Cookbook::Basics::Recipe8> for more information.
 
 =item I<default> => SCALAR | CODE
 
@@ -786,8 +794,8 @@ B<are not> overridden, or removed.
 
 These three items are syntactic sugar for the before, after, and around method
 modifier features that L<Class::MOP> provides. More information on these may be
-found in the L<Class::MOP::Class documentation|Class::MOP::Class/"Method
-Modifiers"> for now.
+found in L<Moose::Manual::MethodModifiers> and the
+L<Class::MOP::Class documentation|Class::MOP::Class/"Method Modifiers">.
 
 =item B<super>
 
@@ -1119,6 +1127,14 @@ Shawn (sartak) Moore E<lt>sartak@bestpractical.comE<gt>
 
 Dave (autarch) Rolsky E<lt>autarch@urth.orgE<gt>
 
+Jesse (doy) Luehrs E<lt>doy at tozt dot netE<gt>
+
+Hans Dieter (confound) Pearcey E<lt>hdp@pobox.comE<gt>
+
+Chris (perigrin) Prather
+
+Florian Ragwitz E<lt>rafl@debian.orgE<gt>
+
 =head2 OTHER CONTRIBUTORS
 
 Aankhen
@@ -1131,8 +1147,6 @@ Nathan (kolibrie) Gray
 
 Christian (chansen) Hansen
 
-Hans Dieter (confound) Pearcey
-
 Eric (ewilhelm) Wilhelm
 
 Guillermo (groditi) Roditi
@@ -1149,8 +1163,6 @@ Scott (konobi) McWhirter
 
 Shlomi (rindolf) Fish
 
-Chris (perigrin) Prather
-
 Wallace (wreis) Reis
 
 Jonathan (jrockway) Rockway