Be more consistent with the Moose::Meta::Class->create($package, %opts) api
Shawn M Moore [Tue, 25 Nov 2008 06:10:30 +0000 (06:10 +0000)]
lib/Moose/Meta/Role.pm
t/030_roles/034_create_role.t

index 8d47ab4..7e44f09 100644 (file)
@@ -476,12 +476,9 @@ sub combine {
 }
 
 sub create {
-    my ( $role, @args ) = @_;
+    my ( $role, $package_name, %options ) = @_;
 
-    unshift @args, 'package' if @args % 2 == 1;
-
-    my (%options) = @args;
-    my $package_name = $options{package};
+    $options{package} = $package_name;
 
     (ref $options{attributes} eq 'HASH')
         || confess "You must pass a HASH ref of attributes"
@@ -493,7 +490,7 @@ sub create {
 
     $role->SUPER::create(%options);
 
-    my (%initialize_options) = @args;
+    my (%initialize_options) = %options;
     delete @initialize_options{qw(
         package
         attributes
index 8c1df50..089b8f8 100644 (file)
@@ -5,7 +5,7 @@ use Test::More tests => 4;
 use Moose ();
 
 my $role = Moose::Meta::Role->create(
-    'package' => 'MyItem::Role::Equipment',
+    'MyItem::Role::Equipment',
     attributes => {
         is_worn => {
             is => 'rw',