Commit | Line | Data |
98630abc |
1 | package MooseX::StrictConstructor::FromRole; |
2 | |
3 | use strict; |
4 | use warnings; |
5 | |
6 | use Moose 0.94 (); |
7 | use Moose::Exporter; |
8 | use Moose::Util::MetaRole; |
9 | |
10 | { |
11 | my %class_meta = ( class => ['MooseX::StrictConstructor::Trait::Class'] ); |
12 | my %role_meta; |
13 | |
14 | if ( $Moose::VERSION < 1.9900 ) { |
15 | require MooseX::StrictConstructor::Trait::Method::Constructor; |
16 | $class_meta{constructor} |
17 | = ['MooseX::StrictConstructor::Trait::Method::Constructor']; |
18 | } |
19 | else |
20 | { |
21 | %role_meta |
22 | = ( |
23 | role => ['MooseX::StrictConstructor::Trait::Role'], |
24 | application_to_class => ['MooseX::StrictConstructor::Trait::ApplicationToClass'], |
25 | application_to_role =>['MooseX::StrictConstructor::Trait::ApplicationToRole'], |
26 | ); |
27 | } |
28 | |
29 | Moose::Exporter->setup_import_methods( |
30 | class_metaroles => \%class_meta, |
31 | role_metaroles => \%role_meta, |
32 | ); |
33 | } |
34 | |
35 | 1; |
36 | |
37 | # ABSTRACT: MooseX::StrictConstructor behaviour when used from a role |
38 | |
39 | __END__ |
40 | |
41 | =pod |
42 | |
43 | =head1 DESCRIPTION |
44 | |
45 | This package is equivalent to C<Moosex::StrictConstructor> except that it also |
46 | works from roles. This is only available in Moose 2.0 and later. |
47 | |
48 | =cut |