MooseX::Role::TraitConstructor - A wrapper for new that can accept a traits parameter.
new
traits
package Foo; use Moose; with qw(MooseX::Role::TraitConstructor); package Foo::Bah; sub bah_method { ... } my $foo = Foo->new( traits => [qw( Bah )] ); $foo->bah_method;
This role allows you to easily accept a traits argument (or another name) into your constructor, which will easily mix roles into an anonymous class before construction, much like Moose::Meta::Attribute does.
Returns the string traits.
Override to rename the parameter.
A "new" in Moose::Object like parameter processor which will call new on the return value of interpolate_class_from_params.
interpolate_class_from_params
This method will automatically create an anonymous class with the roles from the traits param mixed into it if one exists.
If not the normal class name will be returned.
Will remove the traits parameter from $params.
$params
Also works as an instance method, but always returns a class name.
In list context also returns the actual list of roles mixed into the class.
Calls filter_constructor_traits on the result of resolve_constructor_traits.
filter_constructor_traits
resolve_constructor_traits
Attempt to load the traits specified in @traits usinc resolve_constructor_trait
@traits
resolve_constructor_trait
Attempts to get a processed name from process_trait_name, and then tries to load that.
process_trait_name
If process_trait_name didn't return a true value or its return value could not be loaded then $trait will be tried.
$trait
If nothing could be loaded an error is thrown.
$possible_root is the name of the first non anonymous class in the linearized_isa, usually $class, but will DWIM in case $class has already been interpolated with traits from a named class.
$possible_root
linearized_isa
$class
Returns join "::", $possible_root, $trait.
join "::", $possible_root, $trait
You probably want to override this method.
Returns all the the roles that the invocant class doesn't already do (uses does).
does
http://code2.0beta.co.uk/moose/svn/. Ask on #moose for commit bits.
Yuval Kogman <nothingmuch@woobling.org>
Copyright (c) 2008 Yuval Kogman. All rights reserved This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install MooseX::Role::TraitConstructor, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MooseX::Role::TraitConstructor
CPAN shell
perl -MCPAN -e shell install MooseX::Role::TraitConstructor
For more information on module installation, please visit the detailed CPAN module installation guide.