elsif (ref($handles) eq 'ARRAY') {
return map { $_ => $_ } @$handles;
}
+ elsif (ref($handles) eq 'Regexp') {
+ my $class_or_role = ($self->{isa} || $self->{does})
+ || $self->throw_error("Cannot delegate methods based on a Regexp without a type constraint (isa)");
+
+ my $meta = Mouse::Meta::Class->initialize("$class_or_role"); # "" for stringify
+ return map { $_ => $_ }
+ grep { $_ ne 'meta' && !Mouse::Object->can($_) && $_ =~ $handles }
+ $meta->isa('Mouse::Meta::Class') ? $meta->get_all_method_names : $meta->get_method_list;
+ }
else {
$self->throw_error("Unable to canonicalize the 'handles' option with $handles");
}
Creates a new attribute in the owner class, inheriting options from parent classes.
Accessors and helper methods are installed. Some error checking is done.
-=head2 C<< get_read_method_ref >>\r
-\r
-=head2 C<< get_write_method_ref >>\r
-\r
-Returns the subroutine reference of a method suitable for reading or\r
-writing the attribute's value in the associated class. These methods\r
-always return a subroutine reference, regardless of whether or not the\r
+=head2 C<< get_read_method_ref >>
+
+=head2 C<< get_write_method_ref >>
+
+Returns the subroutine reference of a method suitable for reading or
+writing the attribute's value in the associated class. These methods
+always return a subroutine reference, regardless of whether or not the
attribute is read- or write-only.
=head1 SEE ALSO