Use objects, not names, in RoleSummation
[gitmo/Moose.git] / lib / Moose / Meta / Role.pm
index 96612fc..abd6280 100644 (file)
@@ -57,7 +57,7 @@ foreach my $action (
         attr_reader => 'get_excluded_roles_map' ,
         methods     => {
             add       => 'add_excluded_roles',
-            get_list  => 'get_excluded_roles_list',
+            get_keys  => 'get_excluded_roles_list',
             existence => 'excludes_role',
         }
     },
@@ -65,9 +65,9 @@ foreach my $action (
         name        => 'required_methods',
         attr_reader => 'get_required_methods_map',
         methods     => {
-            remove    => 'remove_required_methods',
-            get_list  => 'get_required_method_list',
-            existence => 'requires_method',
+            remove     => 'remove_required_methods',
+            get_values => 'get_required_method_list',
+            existence  => 'requires_method',
         }
     },
     {
@@ -75,7 +75,7 @@ foreach my $action (
         attr_reader => 'get_attribute_map',
         methods     => {
             get       => 'get_attribute',
-            get_list  => 'get_attribute_list',
+            get_keys  => 'get_attribute_list',
             existence => 'has_attribute',
             remove    => 'remove_attribute',
         }
@@ -97,10 +97,15 @@ foreach my $action (
         $self->$attr_reader->{$_} = undef foreach @values;
     }) if exists $methods->{add};
 
-    $META->add_method($methods->{get_list} => sub {
+    $META->add_method($methods->{get_keys} => sub {
         my ($self) = @_;
         keys %{$self->$attr_reader};
-    }) if exists $methods->{get_list};
+    }) if exists $methods->{get_keys};
+
+    $META->add_method($methods->{get_values} => sub {
+        my ($self) = @_;
+        values %{$self->$attr_reader};
+    }) if exists $methods->{get_values};
 
     $META->add_method($methods->{get} => sub {
         my ($self, $name) = @_;
@@ -656,7 +661,7 @@ sub create {
 # has 'required_methods' => (
 #     metaclass => 'Collection::Hash',
 #     reader    => 'get_required_methods_map',
-#     isa       => 'HashRef[Str]',
+#     isa       => 'HashRef[Moose::Meta::Role::Method::Required]',
 #     provides  => {
 #         # not exactly set, or delete since it works for multiple
 #         'set'    => 'add_required_methods',
@@ -923,7 +928,7 @@ Adds the named methods to the role's list of required methods.
 
 =item B<< $metarole->remove_required_methods(@names) >>
 
-Removes the named methods to the role's list of required methods.
+Removes the named methods from the role's list of required methods.
 
 =back