_enw for Method::Constructor
Yuval Kogman [Wed, 13 Aug 2008 21:20:28 +0000 (21:20 +0000)]
lib/Class/MOP/Method/Constructor.pm

index 6f9d221..466eee8 100644 (file)
@@ -23,16 +23,7 @@ sub new {
     ($options{package_name} && $options{name})
         || confess "You must supply the package_name and name parameters $Class::MOP::Method::UPGRADE_ERROR_TEXT";
 
-    my $self = bless {
-        # from our superclass
-        'body'                 => undef,
-        'package_name'         => $options{package_name},
-        'name'                 => $options{name},        
-        # specific to this subclass
-        'options'              => $options{options} || {},
-        'associated_metaclass' => $options{metaclass},
-        'is_inline'            => ($options{is_inline} || 0),
-    } => $class;
+    my $self = $class->_new(%options);
 
     # we don't want this creating
     # a cycle in the code, if not
@@ -44,6 +35,21 @@ sub new {
     return $self;
 }
 
+sub _new {
+    my ( $class, %options ) = @_;
+
+    bless {
+        # from our superclass
+        'body'                 => undef,
+        'package_name'         => $options{package_name},
+        'name'                 => $options{name},        
+        # specific to this subclass
+        'options'              => $options{options} || {},
+        'associated_metaclass' => $options{metaclass},
+        'is_inline'            => ($options{is_inline} || 0),
+    }, $class;
+}
+
 ## accessors
 
 sub options              { (shift)->{'options'}              }