at least pass plugin args to ::Invocation
[gitmo/MooseX-Runnable.git] / lib / MooseX / Runnable / Invocation.pm
index c1a2a1a..16db55b 100644 (file)
@@ -1,7 +1,8 @@
 package MooseX::Runnable::Invocation;
 use Moose;
 use MooseX::Types -declare => ['RunnableClass'];
-use MooseX::Types::Moose qw(Str ClassName);
+use MooseX::Types::Moose qw(Str HashRef ArrayRef);
+use namespace::autoclean;
 
 require Class::MOP;
 
@@ -12,7 +13,6 @@ subtype RunnableClass,
   as Str,
   where { $_ =~ /^[:A-Za-z_]+$/ };
 
-use namespace::clean -except => 'meta';
 
 # this class is just as runnable as any other, so I guess we should tag it
 with 'MooseX::Runnable', 'MooseX::Object::Pluggable';
@@ -25,7 +25,7 @@ has 'class' => (
 
 has 'plugins' => (
     is         => 'ro',
-    isa        => 'ArrayRef[Str]',
+    isa        => HashRef[ArrayRef[Str]],
     default    => sub { [] },
     required   => 1,
     auto_deref => 1,
@@ -33,7 +33,7 @@ has 'plugins' => (
 
 sub BUILD {
     my $self = shift;
-    $self->load_plugin($_) for $self->plugins;
+    $self->load_plugin($_) for keys %{$self->plugins};
 }
 
 sub load_class {