File Coverage

blib/lib/MooseX/Declare/Syntax/Keyword/Class.pm
Criterion Covered Total %
statement 9 9 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod 1 1 100.0
total 14 14 100.0


line stmt bran cond sub pod time code
1             package MooseX::Declare::Syntax::Keyword::Class;
2             # ABSTRACT: Class declarations
3             $MooseX::Declare::Syntax::Keyword::Class::VERSION = '0.39';
4 24     24   49121 use Moose;
  24         12744585  
  24         227  
5              
6 24     24   221671 use namespace::clean -except => 'meta';
  24         76  
  24         437  
7              
8             #pod =head1 CONSUMES
9             #pod
10             #pod =for :list
11             #pod * L<MooseX::Declare::Syntax::MooseSetup>
12             #pod * L<MooseX::Declare::Syntax::RoleApplication>
13             #pod * L<MooseX::Declare::Syntax::Extending>
14             #pod
15             #pod =cut
16              
17             with qw(
18             MooseX::Declare::Syntax::MooseSetup
19             MooseX::Declare::Syntax::RoleApplication
20             MooseX::Declare::Syntax::Extending
21             );
22              
23             #pod =head1 MODIFIED METHODS
24             #pod
25             #pod =head2 imported_moose_symbols
26             #pod
27             #pod List Object->imported_moose_symbols ()
28             #pod
29             #pod Extends the existing L<MooseX::Declare::Syntax::MooseSetup/imported_moose_symbols>
30             #pod with C<extends>, C<has>, C<inner> and C<super>.
31             #pod
32             #pod =cut
33              
34             around imported_moose_symbols => sub { shift->(@_), qw( extends has inner super ) };
35              
36             #pod =method generate_export
37             #pod
38             #pod CodeRef generate_export ()
39             #pod
40             #pod This will return a closure doing a call to L</make_anon_metaclass>.
41             #pod
42             #pod =cut
43              
44 1     1 1 6971 sub generate_export { my $self = shift; sub { $self->make_anon_metaclass } }
  87     87   204  
  87         614  
45              
46              
47             #pod =head2 auto_make_immutable
48             #pod
49             #pod Bool Object->auto_make_immutable ()
50             #pod
51             #pod Is set to a true value, so classes are made immutable by default.
52             #pod
53             #pod =cut
54              
55             around auto_make_immutable => sub { 1 };
56              
57             #pod =head2 make_anon_metaclass
58             #pod
59             #pod Object Object->make_anon_metaclass ()
60             #pod
61             #pod Returns an anonymous instance of L<Moose::Meta::Class>.
62             #pod
63             #pod =cut
64              
65             around make_anon_metaclass => sub { Moose::Meta::Class->create_anon_class };
66              
67             #pod =head1 SEE ALSO
68             #pod
69             #pod =for :list
70             #pod * L<MooseX::Declare>
71             #pod * L<MooseX::Declare::Syntax::Keyword::Role>
72             #pod * L<MooseX::Declare::Syntax::RoleApplication>
73             #pod * L<MooseX::Declare::Syntax::Extending>
74             #pod * L<MooseX::Declare::Syntax::MooseSetup>
75             #pod
76             #pod =cut
77              
78             1;
79              
80             __END__
81              
82             =pod
83              
84             =encoding UTF-8
85              
86             =head1 NAME
87              
88             MooseX::Declare::Syntax::Keyword::Class - Class declarations
89              
90             =head1 VERSION
91              
92             version 0.39
93              
94             =head1 METHODS
95              
96             =head2 generate_export
97              
98             CodeRef generate_export ()
99              
100             This will return a closure doing a call to L</make_anon_metaclass>.
101              
102             =head1 CONSUMES
103              
104             =over 4
105              
106             =item *
107              
108             L<MooseX::Declare::Syntax::MooseSetup>
109              
110             =item *
111              
112             L<MooseX::Declare::Syntax::RoleApplication>
113              
114             =item *
115              
116             L<MooseX::Declare::Syntax::Extending>
117              
118             =back
119              
120             =head1 MODIFIED METHODS
121              
122             =head2 imported_moose_symbols
123              
124             List Object->imported_moose_symbols ()
125              
126             Extends the existing L<MooseX::Declare::Syntax::MooseSetup/imported_moose_symbols>
127             with C<extends>, C<has>, C<inner> and C<super>.
128              
129             =head2 auto_make_immutable
130              
131             Bool Object->auto_make_immutable ()
132              
133             Is set to a true value, so classes are made immutable by default.
134              
135             =head2 make_anon_metaclass
136              
137             Object Object->make_anon_metaclass ()
138              
139             Returns an anonymous instance of L<Moose::Meta::Class>.
140              
141             =head1 SEE ALSO
142              
143             =over 4
144              
145             =item *
146              
147             L<MooseX::Declare>
148              
149             =item *
150              
151             L<MooseX::Declare::Syntax::Keyword::Role>
152              
153             =item *
154              
155             L<MooseX::Declare::Syntax::RoleApplication>
156              
157             =item *
158              
159             L<MooseX::Declare::Syntax::Extending>
160              
161             =item *
162              
163             L<MooseX::Declare::Syntax::MooseSetup>
164              
165             =back
166              
167             =head1 AUTHOR
168              
169             Florian Ragwitz <rafl@debian.org>
170              
171             =head1 COPYRIGHT AND LICENSE
172              
173             This software is copyright (c) 2008 by Florian Ragwitz.
174              
175             This is free software; you can redistribute it and/or modify it under
176             the same terms as the Perl 5 programming language system itself.
177              
178             =cut