From f143c2f7abc0b026d8825640c513732853311a43 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 21 Feb 2011 12:31:44 -0600 Subject: make roles work --- lib/MooseX/Bread/Board.pm | 11 ++++++++--- lib/MooseX/Bread/Board/Meta/Role/Attribute.pm | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/MooseX/Bread/Board.pm b/lib/MooseX/Bread/Board.pm index fbf536b..2f4c4b8 100644 --- a/lib/MooseX/Bread/Board.pm +++ b/lib/MooseX/Bread/Board.pm @@ -8,6 +8,9 @@ my (undef, undef, $init_meta) = Moose::Exporter->build_import_methods( class => ['MooseX::Bread::Board::Meta::Role::Class'], instance => ['MooseX::Bread::Board::Meta::Role::Instance'], }, + #role_metaroles => { + #applied_attribute => ['MooseX::Bread::Board::Meta::Role::Attribute'], + #}, base_class_roles => ['MooseX::Bread::Board::Role::Object'], ); @@ -15,9 +18,11 @@ sub init_meta { my $package = shift; my %options = @_; if (my $meta = Class::MOP::class_of($options{for_class})) { - my @supers = $meta->superclasses; - $meta->superclasses('Bread::Board::Container') - if @supers == 1 && $supers[0] eq 'Moose::Object'; + if ($meta->isa('Class::MOP::Class')) { + my @supers = $meta->superclasses; + $meta->superclasses('Bread::Board::Container') + if @supers == 1 && $supers[0] eq 'Moose::Object'; + } } $package->$init_meta(%options); } diff --git a/lib/MooseX/Bread/Board/Meta/Role/Attribute.pm b/lib/MooseX/Bread/Board/Meta/Role/Attribute.pm index 19492ae..eae04cc 100644 --- a/lib/MooseX/Bread/Board/Meta/Role/Attribute.pm +++ b/lib/MooseX/Bread/Board/Meta/Role/Attribute.pm @@ -1,5 +1,6 @@ package MooseX::Bread::Board::Meta::Role::Attribute; use Moose::Role; +Moose::Util::meta_attribute_alias('Service'); use Bread::Board::Types; use List::MoreUtils qw(any); -- cgit v1.2.3-54-g00ecf