Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

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

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

NAME
MooseX::CompileTime::Traits - Allow compile time traits for classes/roles VERSION
version 1.102570 SYNOPSIS
role Bar(Int :$bar) { method bar { $bar + 2 } } role Baz(Int :$baz) { method baz { $baz + 4 } } class Foo with MooseX::CompileTime::Traits { } class Flarg with MooseX::CompileTime::Traits { } ... use Foo traits => [ Bar => { bar => 2 } ]; use Flarg traits => [ Bar => { bar => 1 }, Baz => { baz => 1} ]; Foo->new()->bar(); # 4 my $flarg = Flarg->new(); $flarg->bar(); # 3 $flarg->baz(); # 5 DESCRIPTION
MooseX::CompileTime::Traits allows role application at compile time via use statements. What this class does is provide an import method that will apply each of the roles (along with any arguments for parameterized roles). Roles and their arguments should be provided as an ArrayRef of tuples. Simply 'with' the role to gain the functionality PUBLIC_METHODS import (ClassName $class: ArrayRef :$traits?) import is provided such that when your class or role is use'd it can take additional arguments that will be validatated and interpreted as roles or traits that need to be applied. AUTHOR
Nicholas Perez <nperez@cpan.org> COPYRIGHT AND LICENSE
This software is copyright (c) 2010 by Infinity Interactive. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.10.1 2010-09-14 MooseX::CompileTime::Traits(3pm)

Check Out this Related 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