X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FRole%2FApplication.pm;h=cdeb7a837d3b77fcc8a77a438b310cad830a7050;hb=856e64d4108c5faf3ba9ead64d73dbf53022541d;hp=99cc38f57a7ff6d934c8ca39cb3a45b6d6ab2e13;hpb=547dda77201ee580b3dfda83b95e278ce6232182;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Role/Application.pm b/lib/Moose/Meta/Role/Application.pm index 99cc38f..cdeb7a8 100644 --- a/lib/Moose/Meta/Role/Application.pm +++ b/lib/Moose/Meta/Role/Application.pm @@ -4,7 +4,8 @@ use strict; use warnings; use metaclass; -our $VERSION = '0.01'; +our $VERSION = '0.80'; +$VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; __PACKAGE__->meta->add_attribute('method_exclusions' => ( @@ -19,17 +20,17 @@ __PACKAGE__->meta->add_attribute('method_aliases' => ( 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 { @@ -57,12 +58,12 @@ sub apply { $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(@_); @@ -95,6 +96,9 @@ Moose::Meta::Role::Application - A base class for role application 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 @@ -149,7 +153,7 @@ Stevan Little Estevan@iinteractive.comE =head1 COPYRIGHT AND LICENSE -Copyright 2006-2008 by Infinity Interactive, Inc. +Copyright 2006-2009 by Infinity Interactive, Inc. L