Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

moosex::traits::pluggable(3pm) [debian man page]

MooseX::Traits::Pluggable(3pm)				User Contributed Perl Documentation			    MooseX::Traits::Pluggable(3pm)

NAME
MooseX::Traits::Pluggable - trait loading and resolution for Moose DESCRIPTION
See MooseX::Traits for usage information. Use "new_with_traits" to construct an object with a list of traits and "apply_traits" to apply traits to an instance. Adds support for class precedence search for traits and some extra attributes, described below. TRAIT SEARCH
If the value of "_trait_namespace" in MooseX::Traits starts with a "+" the namespace will be considered relative to the "class_precedence_list" (ie. @ISA) of the original class. Example: package Class1 use Moose; package Class1::Trait::Foo; use Moose::Role; has 'bar' => ( is => 'ro', isa => 'Str', required => 1, ); package Class2; use parent 'Class1'; with 'MooseX::Traits'; has '+_trait_namespace' => (default => '+Trait'); package Class2::Trait::Bar; use Moose::Role; has 'baz' => ( is => 'ro', isa => 'Str', required => 1, ); package main; my $instance = Class2->new_with_traits( traits => ['Foo', 'Bar'], bar => 'baz', baz => 'quux', ); $instance->does('Class1::Trait::Foo'); # true $instance->does('Class2::Trait::Bar'); # true NAMESPACE ARRAYS
You can search multiple namespaces for traits, for example: has '+_trait_namespace' => ( default => sub { [qw/+Trait +Role ExtraNS::Trait/] } ); Will search in the "class_precedence_list" for "::Trait::TheTrait" and "::Role::TheTrait" and then for "ExtraNS::Trait::TheTrait". EXTRA ATTRIBUTES
_original_class_name When traits are applied to your class or instance, you get an anonymous class back whose name will be not the same as your original class. So "ref $self" will not be "Class", but "$self->_original_class_name" will be. _traits List of the (unresolved) traits applied to the instance. _resolved_traits List of traits applied to the instance resolved to full package names. SEE ALSO
MooseX::Traits, MooseX::Object::Pluggable BUGS
Please report any bugs or feature requests to "bug-moosex-traits-pluggable at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=MooseX-Traits-Pluggable>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. SUPPORT
More information at: o RT: CPAN's request tracker <http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooseX-Traits-Pluggable> o AnnoCPAN: Annotated CPAN documentation <http://annocpan.org/dist/MooseX-Traits-Pluggable> o CPAN Ratings <http://cpanratings.perl.org/d/MooseX-Traits-Pluggable> o Search CPAN <http://search.cpan.org/dist/MooseX-Traits-Pluggable/> AUTHOR
Rafael Kitover "<rkitover@cpan.org>" CONTRIBUTORS
Tomas Doran, "<bobtfish@bobtfish.net>" COPYRIGHT &; LICENSE Copyright (c) 2009 - 2010 by the aforementioned "AUTHOR" and "CONTRIBUTORS". This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.10.1 2010-07-25 MooseX::Traits::Pluggable(3pm)
Man Page