From 53c7bea3992c4c79d361a758fa7f28268d817d71 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Wed, 25 Apr 2012 01:42:31 -0500 Subject: fix for moose 2.06 --- lib/MooseX/ABC.pm | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/lib/MooseX/ABC.pm b/lib/MooseX/ABC.pm index fd8e4c8..45ac796 100644 --- a/lib/MooseX/ABC.pm +++ b/lib/MooseX/ABC.pm @@ -53,22 +53,30 @@ sub requires { shift->add_required_method(@_); } -my ($import, $unimport, $init_meta) = Moose::Exporter->build_import_methods( - with_meta => [qw(requires)], - install => [qw(import unimport)], - class_metaroles => { - class => ['MooseX::ABC::Trait::Class'], - }, - base_class_roles => ['MooseX::ABC::Role::Object'], +Moose::Exporter->setup_import_methods( + with_meta => [qw(requires)], ); sub init_meta { my ($package, %options) = @_; + Carp::confess("Can't make a role into an abstract base class") if Class::MOP::class_of($options{for_class})->isa('Moose::Meta::Role'); - my $ret = $init_meta->(@_); + + Moose::Util::MetaRole::apply_metaroles( + for => $options{for_class}, + class_metaroles => { + class => ['MooseX::ABC::Trait::Class'], + }, + ); + Moose::Util::MetaRole::apply_base_class_roles( + for => $options{for_class}, + roles => ['MooseX::ABC::Role::Object'], + ); + Class::MOP::class_of($options{for_class})->is_abstract(1); - return $ret; + + return Class::MOP::class_of($options{for_class}); } =head1 SEE ALSO -- cgit v1.2.3-54-g00ecf