make role application interface consistent
Matt S Trout [Tue, 16 Nov 2010 00:17:04 +0000 (00:17 +0000)]
lib/Moo.pm
lib/Moo/Role.pm
lib/Role/Tiny.pm
t/role-tiny.t

index 28e91a8..0ec27a7 100644 (file)
@@ -20,7 +20,7 @@ sub import {
   *{_getglob("${target}::with")} = sub {
     require Moo::Role;
     die "Only one role supported at a time by with" if @_ > 1;
-    Moo::Role->apply_role_to_package($_[0], $target);
+    Moo::Role->apply_role_to_package($target, $_[0]);
   };
   $MAKERS{$target} = {};
   *{_getglob("${target}::has")} = sub {
index a8af3cf..6710384 100644 (file)
@@ -26,8 +26,8 @@ sub import {
 }
 
 sub apply_role_to_package {
-  my ($me, $role, $to) = @_;
-  $me->SUPER::apply_role_to_package($role, $to);
+  my ($me, $to, $role) = @_;
+  $me->SUPER::apply_role_to_package($to, $role);
   $me->_handle_constructor($to, $INFO{$role}{attributes});
 }
 
index 534db17..009814b 100644 (file)
@@ -35,7 +35,7 @@ sub import {
   };
   *{_getglob "${target}::with"} = sub {
     die "Only one role supported at a time by with" if @_ > 1;
-    $me->apply_role_to_package($_[0], $target);
+    $me->apply_role_to_package($target, $_[0]);
   };
   # grab all *non-constant* (ref eq 'SCALAR') subs present
   # in the symbol table and store their refaddrs (no need to forcibly
@@ -49,7 +49,7 @@ sub import {
 }
 
 sub apply_role_to_package {
-  my ($me, $role, $to) = @_;
+  my ($me, $to, $role) = @_;
 
   _load_module($role);
 
@@ -279,7 +279,7 @@ is to be much simpler, hence disallowing composition of multiple roles at once.
 
 =head2 apply_role_to_package
 
- Role::Tiny->apply_role_to_package('Some::Role', 'Some::Package');
+ Role::Tiny->apply_role_to_package('Some::Package', 'Some::Role');
 
 Composes role with package
 
index b3ee22f..254e62b 100644 (file)
@@ -51,7 +51,7 @@ BEGIN {
 
 sub try_apply_to {
   my $to = shift;
-  exception { Role::Tiny->apply_role_to_package('MyRole', $to) }
+  exception { Role::Tiny->apply_role_to_package($to, 'MyRole') }
 }
 
 is(try_apply_to('MyClass'), undef, 'role applies cleanly');