use warnings;
use metaclass;
-our $VERSION = '0.50';
+our $VERSION = '0.87';
+$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
__PACKAGE__->meta->add_attribute('method_exclusions' => (
default => sub { {} }
));
-sub new {
+sub new {
my ($class, %params) = @_;
-
+
if (exists $params{excludes}) {
# I wish we had coercion here :)
- $params{excludes} = (ref $params{excludes} eq 'ARRAY'
- ? $params{excludes}
+ $params{excludes} = (ref $params{excludes} eq 'ARRAY'
+ ? $params{excludes}
: [ $params{excludes} ]);
}
-
- $class->meta->new_object(%params);
+
+ $class->_new(\%params);
}
sub is_method_excluded {
$self->check_role_exclusions(@_);
$self->check_required_methods(@_);
$self->check_required_attributes(@_);
-
+
$self->apply_attributes(@_);
- $self->apply_methods(@_);
-
+ $self->apply_methods(@_);
+
$self->apply_override_method_modifiers(@_);
-
+
$self->apply_before_method_modifiers(@_);
$self->apply_around_method_modifiers(@_);
$self->apply_after_method_modifiers(@_);
This is the abstract base class for role applications.
+The API for this class and its subclasses still needs some
+consideration, and is intentionally not yet documented.
+
=head2 METHODS
=over 4
=head1 COPYRIGHT AND LICENSE
-Copyright 2006-2008 by Infinity Interactive, Inc.
+Copyright 2006-2009 by Infinity Interactive, Inc.
L<http://www.iinteractive.com>