use warnings;
use metaclass;
-our $VERSION = '0.01';
+our $VERSION = '0.66';
+$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
__PACKAGE__->meta->add_attribute('method_exclusions' => (
default => sub { [] }
));
+__PACKAGE__->meta->add_attribute('method_aliases' => (
+ init_arg => 'alias',
+ reader => 'get_method_aliases',
+ default => sub { {} }
+));
+
sub new {
my ($class, %params) = @_;
: [ $params{excludes} ]);
}
- $class->meta->new_object(%params);
+ $class->_new(\%params);
}
sub is_method_excluded {
return 0;
}
+sub is_method_aliased {
+ my ($self, $method_name) = @_;
+ exists $self->get_method_aliases->{$method_name} ? 1 : 0
+}
+
+sub is_aliased_method {
+ my ($self, $method_name) = @_;
+ my %aliased_names = reverse %{$self->get_method_aliases};
+ exists $aliased_names{$method_name} ? 1 : 0;
+}
+
sub apply {
my $self = shift;
$self->apply_after_method_modifiers(@_);
}
-sub check_role_exclusions { die "Abstract Method" }
-sub check_required_methods { die "Abstract Method" }
-sub check_required_attributes { die "Abstract Method" }
+sub check_role_exclusions { Carp::croak "Abstract Method" }
+sub check_required_methods { Carp::croak "Abstract Method" }
+sub check_required_attributes { Carp::croak "Abstract Method" }
-sub apply_attributes { die "Abstract Method" }
-sub apply_methods { die "Abstract Method" }
-sub apply_override_method_modifiers { die "Abstract Method" }
-sub apply_method_modifiers { die "Abstract Method" }
+sub apply_attributes { Carp::croak "Abstract Method" }
+sub apply_methods { Carp::croak "Abstract Method" }
+sub apply_override_method_modifiers { Carp::croak "Abstract Method" }
+sub apply_method_modifiers { Carp::croak "Abstract Method" }
sub apply_before_method_modifiers { (shift)->apply_method_modifiers('before' => @_) }
sub apply_around_method_modifiers { (shift)->apply_method_modifiers('around' => @_) }
=head1 NAME
-Moose::Meta::Role::Application
+Moose::Meta::Role::Application - A base class for role application
=head1 DESCRIPTION
=item B<is_method_excluded>
+=item B<get_method_aliases>
+
+=item B<is_aliased_method>
+
+=item B<is_method_aliased>
+
=item B<apply>
=item B<check_role_exclusions>
=head1 COPYRIGHT AND LICENSE
-Copyright 2006-2008 by Infinity Interactive, Inc.
+Copyright 2006-2009 by Infinity Interactive, Inc.
L<http://www.iinteractive.com>