use warnings;
use Mouse::Meta::Method::Constructor;
+use Mouse::Meta::Method::Destructor;
use Mouse::Util qw/get_linear_isa blessed/;
use Carp 'confess';
no strict 'refs';
\@{ $args{name} . '::ISA' };
};
+ $args{roles} ||= [];
bless \%args, $class;
}
my $name = $self->name;
$self->{is_immutable}++;
no strict 'refs';
- *{"$name\::new"} = Mouse::Meta::Method::Constructor->generate_constructor_method_inline( $self );
+ *{"$name\::new"} = Mouse::Meta::Method::Constructor->generate_constructor_method_inline( $self );
+ *{"$name\::DESTROY"} = Mouse::Meta::Method::Destructor->generate_destructor_method_inline( $self );
}
sub make_mutable {
Carp::croak "Mouse::Meta::Class->make_mutable does not supported by Mouse";
);
}
+sub roles { $_[0]->{roles} }
+
+sub does_role {
+ my ($self, $role_name) = @_;
+ (defined $role_name)
+ || confess "You must supply a role name to look for";
+ for my $role (@{ $self->{roles} }) {
+ return 1 if $role->name eq $role_name;
+ }
+ return 0;
+}
+
1;
__END__