use strict;
use warnings;
-our $VERSION = '0.39';
+our $VERSION = '0.40';
our $AUTHORITY = 'cpan:STEVAN';
use Scalar::Util 'blessed', 'reftype';
my $class = $CALLER;
return subname 'Moose::extends' => sub (@) {
confess "Must derive at least one class" unless @_;
- Class::MOP::load_class($_) for @_;
+
+ my @supers = @_;
+ foreach my $super (@supers) {
+ Class::MOP::load_class($super);
+ }
# this checks the metaclass to make sure
# it is correct, sometimes it can get out
# of sync when the classes are being built
- my $meta = $class->meta->_fix_metaclass_incompatability(@_);
- $meta->superclasses(@_);
+ my $meta = $class->meta->_fix_metaclass_incompatability(@supers);
+ $meta->superclasses(@supers);
};
},
with => sub {
$class->meta->add_augment_method_modifier( $name => $method );
};
},
+ metaclass => sub {
+ my $class = $CALLER;
+ return subname 'Moose::metaclass' => sub {
+ $class->meta;
+ };
+ },
make_immutable => sub {
my $class = $CALLER;
return subname 'Moose::make_immutable' => sub {
+ warn "Use of make_immutable() is deprecated, please use metaclass->make_immutable now\n";
$class->meta->make_immutable(@_);
};
},
has '+message' => (default => 'Hello I am My::Foo');
In this case, we are basically taking the attribute which the role supplied
-and altering it within the bounds of this feature.
+and altering it within the bounds of this feature.
-This feature is restricted somewhat, so as to try and force at least I<some>
-sanity into it. You are only allowed to change the following attributes:
+Aside from where the attributes come from (one from superclass, the other
+from a role), this feature works exactly the same. This feature is restricted
+somewhat, so as to try and force at least I<some> sanity into it. You are only
+allowed to change the following attributes:
=over 4