MooX::Traits::Util(3pm) | User Contributed Perl Documentation | MooX::Traits::Util(3pm) |
MooX::Traits::Util - non-role alternative to MooX::Traits
Given some roles:
package Role; use Moo::Role; has foo => ( is => 'ro', required => 1 );
And a class:
package Class; use Moo;
Apply the roles to the class:
use MooX::Traits::Util -all; my $class = new_class_with_traits('Class', 'Role');
Then use your customized class:
my $object = $class->new( foo => 42 ); $object->isa('Class'); # true $object->does('Role'); # true $object->foo; # 42
This module provides the functionality of MooX::Traits, but it's an exporter rather than a role.
It's inspired by, but not compatible with MooseX::Traits::Util. The latter module is undocumented, and it's not entirely clear whether it's intended to be consumed by end-users, or is an entirely internal API.
This module exports nothing by default.
This function is not quite compatible with the "new_class_with_traits" function provided by MooseX::Traits::Util, in that the latter will return a metaclass object.
This function can be exported.
use List::Util qw(reduce); use MooX::Traits::Util qw( new_class_with_traits ); my $class = ...; my @traits = ...; my $new = reduce { new_class_with_traits($a, $b) } $class, @traits;
Applying traits one by one has implications for method modifiers, and for method conflict detection. Use with caution.
There is no equivalent functionality in MooseX::Traits::Util.
This function can be exported.
This function is not quite compatible with the "resolve_traits" function provided by MooseX::Traits::Util, in that the latter will not handle parameter hashrefs, trusting Moose to do that.
This function cannot be exported.
Please report any bugs to <http://rt.cpan.org/Dist/Display.html?Queue=MooX-Traits>.
MooX::Traits.
Toby Inkster <tobyink@cpan.org>.
This software is copyright (c) 2014 by Toby Inkster.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
2021-01-24 | perl v5.32.0 |