diff --git a/lib/WebGUI/Definition.pm b/lib/WebGUI/Definition.pm index b7c2d6d6f..16e02c6c7 100644 --- a/lib/WebGUI/Definition.pm +++ b/lib/WebGUI/Definition.pm @@ -48,7 +48,6 @@ my ($import, $unimport, $init_meta) = Moose::Exporter->build_import_methods( install => [ 'unimport' ], with_meta => [ 'property', 'attribute' ], also => 'Moose', - roles => [ 'WebGUI::Definition::Role::Object' ], ); #------------------------------------------------------------------- @@ -80,8 +79,10 @@ Sets the metaclass to WebGUI::Definition::Meta::Class. sub init_meta { my $class = shift; my %options = @_; - $options{metaclass} = 'WebGUI::Definition::Meta::Class'; - return Moose->init_meta(%options); + $options{metaclass} //= 'WebGUI::Definition::Meta::Class'; + my $meta = Moose->init_meta(%options); + Moose::Util::apply_all_roles($meta, 'WebGUI::Definition::Role::Object'); + return $meta; } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Definition/Asset.pm b/lib/WebGUI/Definition/Asset.pm index 146930687..a12bf696c 100644 --- a/lib/WebGUI/Definition/Asset.pm +++ b/lib/WebGUI/Definition/Asset.pm @@ -48,7 +48,6 @@ my ($import, $unimport, $init_meta) = Moose::Exporter->build_import_methods( install => [ 'unimport' ], also => 'WebGUI::Definition', with_meta => [ 'property' ], - roles => [ 'WebGUI::Definition::Role::Asset' ], ); sub import { @@ -63,8 +62,10 @@ sub import { sub init_meta { my $class = shift; my %options = @_; - $options{metaclass} = 'WebGUI::Definition::Meta::Asset'; - return Moose->init_meta(%options); + $options{metaclass} //= 'WebGUI::Definition::Meta::Asset'; + my $meta = WebGUI::Definition->init_meta(%options); + Moose::Util::apply_all_roles($meta, 'WebGUI::Definition::Role::Asset'); + return $meta; } #-------------------------------------------------------------------