X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FClassAttribute%2FRole%2FMeta%2FClass.pm;h=8ec293b4e75d3bacd1b8718eee51ecf757a73ddd;hb=ad109c62903c1bf4d05c93b57c059a1392e1d8b5;hp=e51d0a640a2f033ac2821c38755445f6e9494c5e;hpb=deaffdd01a576b7e23e41a486147b595a5796a9e;p=gitmo%2FMooseX-ClassAttribute.git diff --git a/lib/MooseX/ClassAttribute/Role/Meta/Class.pm b/lib/MooseX/ClassAttribute/Role/Meta/Class.pm index e51d0a6..8ec293b 100644 --- a/lib/MooseX/ClassAttribute/Role/Meta/Class.pm +++ b/lib/MooseX/ClassAttribute/Role/Meta/Class.pm @@ -110,23 +110,18 @@ sub _process_inherited_class_attribute { return $inherited_attr->clone_and_inherit_options(%p); } -sub remove_class_attribute { +around remove_class_attribute => sub { + my $orig = shift; my $self = shift; - my $name = shift; - - ( defined $name && $name ) - || confess 'You must provide an attribute name'; - my $removed_attr = $self->get_class_attribute($name); - return unless $removed_attr; - - $self->_remove_class_attribute($name); + my $removed_attr = $self->$orig(@_) + or return; $removed_attr->remove_accessors(); $removed_attr->detach_from_class(); return $removed_attr; -} +}; sub get_all_class_attributes { my $self = shift;