| MooseX-ClassAttribute documentation | Contained in the MooseX-ClassAttribute distribution. |
MooseX::ClassAttribute::Trait::Role - A trait for roles with class attributes
version 0.26
for my $attr ( HasClassAttributes->meta()->get_all_class_attributes() )
{
print $attr->name();
}
This role adds awareness of class attributes to a role metaclass object. It provides a set of introspection methods that largely parallel the existing attribute methods, except they operate on class attributes.
Every method provided by this role has an analogous method in
Class::MOP::Class or Moose::Meta::Class for regular attributes.
These methods are exactly like their counterparts in MooseX::ClassAttribute::Trait::Class.
This accepts the same options as the Moose::Meta::Attribute
add_attribute() method. However, if an attribute is specified as
"required" an error will be thrown.
If the named class attribute exists, it is removed from the role.
See MooseX::ClassAttribute for details.
Dave Rolsky <autarch@urth.org>
This software is Copyright (c) 2011 by Dave Rolsky.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
| MooseX-ClassAttribute documentation | Contained in the MooseX-ClassAttribute distribution. |
package MooseX::ClassAttribute::Trait::Role; BEGIN { $MooseX::ClassAttribute::Trait::Role::VERSION = '0.26'; } use strict; use warnings; use MooseX::ClassAttribute::Meta::Role::Attribute; use Scalar::Util qw( blessed ); use namespace::autoclean; use Moose::Role; with 'MooseX::ClassAttribute::Trait::Mixin::HasClassAttributes'; around add_class_attribute => sub { my $orig = shift; my $self = shift; my $attr = ( blessed $_[0] && $_[0]->isa('Class::MOP::Mixin::AttributeCore') ? $_[0] : MooseX::ClassAttribute::Meta::Role::Attribute->new(@_) ); $self->$orig($attr); return $attr; }; sub _attach_class_attribute { my ( $self, $attribute ) = @_; $attribute->attach_to_role($self); } sub composition_class_roles { return 'MooseX::ClassAttribute::Trait::Role::Composite'; } 1; # ABSTRACT: A trait for roles with class attributes
__END__