# internally used
'associated_class',
'associated_methods',
+ '__METACLASS__',
# Moose defines, but Mouse doesn't
#'definition_context',
if(exists $attribute->{$type}){
my $generator = '_generate_' . $type;
my $code = $accessor_class->$generator($attribute, $metaclass);
- $metaclass->add_method($attribute->{$type} => $code);
- $attribute->associate_method($attribute->{$type});
+ my $name = $attribute->{$type};
+# TODO: do something for compatibility
+# if( $metaclass->name->can($name) ) {
+# my $t = $metaclass->has_method($name) ? 'method' : 'function';
+# Carp::cluck("You are overwriting a locally defined $t"
+# . " ($name) with an accessor");
+# }
+ $metaclass->add_method($name => $code);
+ $attribute->associate_method($name);
}
}
# install delegation
if(exists $attribute->{handles}){
my %handles = $attribute->_canonicalize_handles();
-
while(my($handle, $method_to_call) = each %handles){
+ next if Mouse::Object->can($handle);
+
if($metaclass->has_method($handle)) {
$attribute->throw_error("You cannot overwrite a locally defined method ($handle) with a delegation");
}
elsif ($handle_type eq 'Regexp') {
my $meta = $self->_find_delegate_metaclass();
return map { $_ => $_ }
- grep { !Mouse::Object->can($_) && $_ =~ $handles }
+ grep { /$handles/ }
Mouse::Util::is_a_metarole($meta)
? $meta->get_method_list
: $meta->get_all_method_names;
=head1 VERSION
-This document describes Mouse version 0.75
+This document describes Mouse version 0.91
=head1 DESCRIPTION