Move the eval_environment wrapper to the Class trait from Constructor
[gitmo/MooseX-StrictConstructor.git] / lib / MooseX / StrictConstructor.pm
index 80e8453..aa81a45 100644 (file)
@@ -7,30 +7,18 @@ use Moose 0.94 ();
 use Moose::Exporter;
 use Moose::Util::MetaRole;
 
-{
-    my %class_meta = ( class => ['MooseX::StrictConstructor::Trait::Class'] );
-
-
-    if ( $Moose::VERSION < 1.9900 ) {
-        require MooseX::StrictConstructor::Trait::Method::Constructor;
-        $class_meta{constructor}
-            = ['MooseX::StrictConstructor::Trait::Method::Constructor'];
-    }
-
-    Moose::Exporter->setup_import_methods(
-        class_metaroles => \%class_meta,
-    );
-
-    my $old_import = __PACKAGE__->can('import');
-    no warnings 'redefine';
-    *import = sub {
-      my $caller = caller;
-      Carp::croak "$_[0] can only be applied to Moose classes"
-        unless eval { $caller->meta->isa('Moose::Meta::Class') };
-
-      goto &$old_import;
-    };
-}
+use MooseX::StrictConstructor::Trait::Class;
+use MooseX::StrictConstructor::Trait::Method::Constructor;;
+
+my %metaroles = (
+    class => ['MooseX::StrictConstructor::Trait::Class'],
+);
+
+$metaroles{constructor}
+    = ['MooseX::StrictConstructor::Trait::Method::Constructor']
+    if $Moose::VERSION >= 1.9900;
+
+Moose::Exporter->setup_import_methods( class_metaroles => \%metaroles );
 
 1;