summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2011-02-21 12:47:26 -0600
committerJesse Luehrs <doy@tozt.net>2011-02-21 12:47:26 -0600
commit7254fb6a608b1f54d52572a859356236d0a0ba2e (patch)
tree831674191eefadef8d23ef0b2f6809fd6c4241f6 /lib
parentf143c2f7abc0b026d8825640c513732853311a43 (diff)
downloadbread-board-declare-7254fb6a608b1f54d52572a859356236d0a0ba2e.tar.gz
bread-board-declare-7254fb6a608b1f54d52572a859356236d0a0ba2e.zip
ensure we always inherit from Bread::Board::Container
Diffstat (limited to 'lib')
-rw-r--r--lib/MooseX/Bread/Board/Meta/Role/Class.pm11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/MooseX/Bread/Board/Meta/Role/Class.pm b/lib/MooseX/Bread/Board/Meta/Role/Class.pm
index 9cabd88..47c34bd 100644
--- a/lib/MooseX/Bread/Board/Meta/Role/Class.pm
+++ b/lib/MooseX/Bread/Board/Meta/Role/Class.pm
@@ -31,6 +31,17 @@ sub get_all_services {
$self->linearized_isa;
}
+before superclasses => sub {
+ my $self = shift;
+
+ return unless @_;
+ return if any { $_->isa('Bread::Board::Container') } @_;
+
+ die "Cannot inherit from " . join(', ', @_)
+ . " because MooseX::Bread::Board classes must inherit"
+ . " from Bread::Board::Container";
+};
+
no Moose::Role;
1;