File Coverage

blib/lib/Class/MOP/Mixin.pm
Criterion Covered Total %
statement 14 16 87.5
branch n/a
condition 0 3 0.0
subroutine 5 6 83.3
pod 1 1 100.0
total 20 26 76.9


line stmt bran cond sub pod time code
1             package Class::MOP::Mixin;
2             our $VERSION = '2.2205';
3              
4 451     451   203964 use strict;
  451         1071  
  451         13241  
5 451     451   2314 use warnings;
  451         981  
  451         11756  
6              
7 451     451   2353 use Scalar::Util 'blessed';
  451         944  
  451         20631  
8 451     451   4515 use Module::Runtime 'use_module';
  451         6543  
  451         2938  
9              
10             sub meta {
11 0     0 1   require Class::MOP::Class;
12 0   0       Class::MOP::Class->initialize( blessed( $_[0] ) || $_[0] );
13             }
14              
15             sub _throw_exception {
16 157     157   818 my ($class, $exception_type, @args_to_exception) = @_;
17 157         853 die use_module( "Moose::Exception::$exception_type" )->new( @args_to_exception );
18             }
19              
20             1;
21              
22             # ABSTRACT: Base class for mixin classes
23              
24             __END__
25              
26             =pod
27              
28             =encoding UTF-8
29              
30             =head1 NAME
31              
32             Class::MOP::Mixin - Base class for mixin classes
33              
34             =head1 VERSION
35              
36             version 2.2205
37              
38             =head1 DESCRIPTION
39              
40             This class provides a few methods which are useful in all metaclasses.
41              
42             =head1 METHODS
43              
44             =head2 Class::MOP::Mixin->meta
45              
46             This returns a L<Class::MOP::Class> object for the mixin class.
47              
48             =head2 Class::MOP::Mixin->_throw_exception
49              
50             Throws an exception in the L<Moose::Exception> family. This should ONLY be
51             used internally -- any callers outside Class::MOP::* should be using the
52             version in L<Moose::Util> instead.
53              
54             =head1 AUTHORS
55              
56             =over 4
57              
58             =item *
59              
60             Stevan Little <stevan@cpan.org>
61              
62             =item *
63              
64             Dave Rolsky <autarch@urth.org>
65              
66             =item *
67              
68             Jesse Luehrs <doy@cpan.org>
69              
70             =item *
71              
72             Shawn M Moore <sartak@cpan.org>
73              
74             =item *
75              
76             יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>
77              
78             =item *
79              
80             Karen Etheridge <ether@cpan.org>
81              
82             =item *
83              
84             Florian Ragwitz <rafl@debian.org>
85              
86             =item *
87              
88             Hans Dieter Pearcey <hdp@cpan.org>
89              
90             =item *
91              
92             Chris Prather <chris@prather.org>
93              
94             =item *
95              
96             Matt S Trout <mstrout@cpan.org>
97              
98             =back
99              
100             =head1 COPYRIGHT AND LICENSE
101              
102             This software is copyright (c) 2006 by Infinity Interactive, Inc.
103              
104             This is free software; you can redistribute it and/or modify it under
105             the same terms as the Perl 5 programming language system itself.
106              
107             =cut