use namespace::autoclean;
use Moose::Role;
use Moose::Util::TypeConstraints;
+ use MooseX::ClassAttribute;
around add_class_attribute => sub {
my $next = shift;
}
my (undef, undef, $init_meta) = Moose::Exporter->build_import_methods(
+
install => [ qw(import unimport) ],
+
class_metaroles => {
attribute => ['MooseX::AlwaysCoerce::Role::Meta::Attribute'],
class => ['MooseX::AlwaysCoerce::Role::Meta::Class'],
},
+
+ also => ['MooseX::ClassAttribute'],
);
sub init_meta {
my ($class, %options) = @_;
my $for_class = $options{for_class};
- MooseX::ClassAttribute->import({ into => $for_class });
+ # Bring this in only if we are being applied to a
+ # metaclass, but not a metarole.
+ if (Class::MOP::class_of($for_class)->isa('Class::MOP::Class'))
+ {
+ MooseX::ClassAttribute->import({ into => $for_class });
+ }
# call generated method to do the rest of the work.
goto $init_meta;
=head1 COPYRIGHT & LICENSE
-Copyright (c) 2009 Rafael Kitover
+Copyright (c) 2009-2010 Rafael Kitover
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.