diff options
author | Jesse Luehrs <doy@tozt.net> | 2011-02-21 12:31:44 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2011-02-21 12:31:44 -0600 |
commit | f143c2f7abc0b026d8825640c513732853311a43 (patch) | |
tree | e8f2eae0954f94a9d6b182762f0ab62d78f6ef81 /lib | |
parent | ed3e3a9675ceb2745488ab80b27796a77eca4761 (diff) | |
download | bread-board-declare-f143c2f7abc0b026d8825640c513732853311a43.tar.gz bread-board-declare-f143c2f7abc0b026d8825640c513732853311a43.zip |
make roles work
Diffstat (limited to 'lib')
-rw-r--r-- | lib/MooseX/Bread/Board.pm | 11 | ||||
-rw-r--r-- | lib/MooseX/Bread/Board/Meta/Role/Attribute.pm | 1 |
2 files changed, 9 insertions, 3 deletions
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); |