the repository now lives at https://github.com/moose/MooseX-ClassAttributes
[gitmo/MooseX-ClassAttribute.git] / lib / MooseX / ClassAttribute / Meta / Role / Attribute.pm
1 package MooseX::ClassAttribute::Meta::Role::Attribute;
2
3 use strict;
4 use warnings;
5
6 use List::MoreUtils qw( uniq );
7
8 use namespace::autoclean;
9 use Moose;
10
11 extends 'Moose::Meta::Role::Attribute';
12
13 sub new {
14     my ( $class, $name, %options ) = @_;
15
16     $options{traits} = [
17         uniq( @{ $options{traits} || [] } ),
18         'MooseX::ClassAttribute::Trait::Attribute'
19     ];
20
21     return $class->SUPER::new( $name, %options );
22 }
23
24 1;
25
26 # ABSTRACT: An attribute metaclass for class attributes in roles
27
28 __END__
29
30 =pod
31
32 =head1 DESCRIPTION
33
34 This class overrides L<Moose::Meta::Role::Attribute> to support class
35 attribute declaration in roles.
36
37 =head1 BUGS
38
39 See L<MooseX::ClassAttribute> for details.
40
41 =cut