X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMooseX-Object-Pluggable.git;a=blobdiff_plain;f=lib%2FMooseX%2FObject%2FPluggable.pm;fp=lib%2FMooseX%2FObject%2FPluggable.pm;h=04d9eb5d6f3bcd7fc06256499121a351e3ad69bc;hp=0927281db57ccc1ad9d8503396fb33e07f71fd1e;hb=0e16871fa8fd7fc06f35e6777d916bd101459606;hpb=9843fa6414b84344cefa7c551b2253723bed64a7 diff --git a/lib/MooseX/Object/Pluggable.pm b/lib/MooseX/Object/Pluggable.pm index 0927281..04d9eb5 100644 --- a/lib/MooseX/Object/Pluggable.pm +++ b/lib/MooseX/Object/Pluggable.pm @@ -5,7 +5,7 @@ use Moose::Role; use Class::MOP; use Module::Pluggable::Object; -our $VERSION = '0.0006'; +our $VERSION = '0.0007'; =head1 NAME @@ -281,16 +281,14 @@ sub _load_and_apply_role{ my ($self, $role) = @_; die("You must provide a role name") unless $role; - #don't re-require... - unless( Class::MOP::is_class_loaded($role) ){ - eval Class::MOP::load_class($role) || die("Failed to load role: $role"); - } + eval { Class::MOP::load_class($role) }; + confess("Failed to load role: ${role} $@") if $@; carp("Using 'override' is strongly discouraged and may not behave ". "as you expect it to. Please use 'around'") if scalar keys %{ $role->meta->get_override_method_modifiers_map }; - die("Failed to apply plugin: $role") unless $role->meta->apply( $self ); + $role->meta->apply( $self ); return 1; }