package Mouse::Meta::Role;
-use strict;
-use warnings;
+use Mouse::Util qw(:meta not_supported english_list); # enables strict and warnings
-use Mouse::Util qw(not_supported english_list);
use Mouse::Meta::Module;
-
-use base qw(Mouse::Meta::Module);
+our @ISA = qw(Mouse::Meta::Module);
sub method_metaclass(){ 'Mouse::Meta::Role::Method' } # required for get_method()
$args{required_methods} ||= [];
$args{roles} ||= [];
-# return Mouse::Meta::Class->initialize($class)->new_object(%args)
-# if $class ne __PACKAGE__;
+ my $self = bless \%args, ref($class) || $class;
+ if($class ne __PACKAGE__){
+ $self->meta->_initialize_object($self, \%args);
+ }
- return bless \%args, ref($class) || $class;
+ return $self;
}
sub create_anon_role{
}
sub add_required_methods {
- my $self = shift;
- my @methods = @_;
+ my($self, @methods) = @_;
push @{$self->{required_methods}}, @methods;
}
1;
+__END__
+
+=head1 NAME
+
+Mouse::Meta::Role - The Mouse Role metaclass
+
+=head1 SEE ALSO
+
+L<Moose::Meta::Role>
+
+=cut