Make sure that required/excludes don't explode
[gitmo/Mouse.git] / lib / Mouse / Role.pm
1 #!/usr/bin/env perl
2 package Mouse::Role;
3 use strict;
4 use warnings;
5
6 use Sub::Exporter;
7 use Carp 'confess';
8
9 do {
10     my $CALLER;
11
12     my %exports = (
13         extends => sub {
14             return sub {
15                 confess "Role does not currently support 'extends'";
16             }
17         },
18         before => sub {
19             return sub { }
20         },
21         after => sub {
22             return sub { }
23         },
24         around => sub {
25             return sub { }
26         },
27         has => sub {
28             return sub { }
29         },
30         with => sub {
31             return sub { }
32         },
33         requires => sub {
34             return sub { }
35         },
36         excludes => sub {
37             return sub { }
38         },
39     );
40
41     my $exporter = Sub::Exporter::build_exporter({
42         exports => \%exports,
43         groups  => { default => [':all'] },
44     });
45
46     sub import {
47         $CALLER = caller;
48
49         strict->import;
50         warnings->import;
51
52         goto $exporter;
53     }
54
55     sub unimport {
56     }
57 };
58
59 1;
60