summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2011-02-21 12:31:44 -0600
committerJesse Luehrs <doy@tozt.net>2011-02-21 12:31:44 -0600
commitf143c2f7abc0b026d8825640c513732853311a43 (patch)
treee8f2eae0954f94a9d6b182762f0ab62d78f6ef81 /lib
parented3e3a9675ceb2745488ab80b27796a77eca4761 (diff)
downloadbread-board-declare-f143c2f7abc0b026d8825640c513732853311a43.tar.gz
bread-board-declare-f143c2f7abc0b026d8825640c513732853311a43.zip
make roles work
Diffstat (limited to 'lib')
-rw-r--r--lib/MooseX/Bread/Board.pm11
-rw-r--r--lib/MooseX/Bread/Board/Meta/Role/Attribute.pm1
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);