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