make class attributes work in roles
[gitmo/MooseX-ClassAttribute.git] / lib / MooseX / ClassAttribute / Role / Meta / Mixin / HasClassAttributes.pm
index 46b5a6e..3531f15 100644 (file)
@@ -9,7 +9,7 @@ use Moose::Role;
 has _class_attribute_map => (
     traits  => ['Hash'],
     is      => 'ro',
-    isa     => 'HashRef[Moose::Meta::Attribute]',
+    isa     => 'HashRef[Class::MOP::Mixin::AttributeCore]',
     handles => {
         '_add_class_attribute'     => 'set',
         'has_class_attribute'      => 'exists',
@@ -57,4 +57,19 @@ sub add_class_attribute {
     return $attribute;
 }
 
+sub remove_class_attribute {
+    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);
+
+    return $removed_attr;
+}
+
 1;