- TRAIT SEARCH
- EXTRA ATTRIBUTES
- COPYRIGHT AND LICENSE
MooseX::Traits::Pluggable - an extension to MooseX::Traits
See MooseX::Traits for usage information.
Adds support for class precedence search for traits and some extra attributes, described below.
If the value of "_trait_namespace" in MooseX::Traits starts with a
+ the namespace will be considered relative to the
@ISA) of the original class.
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
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
$self->_original_class_name will be.
List of the (unresolved) traits applied to the instance.
List of traits applied to the instance resolved to full package names.
Don't email these guys, they had nothing to do with this fork:
Copyright 2008 Infinity Interactive, Inc.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.