b1164aad29eabb60e1e24f5a1f7a678758e7acf0
[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     );
34
35     my $exporter = Sub::Exporter::build_exporter({
36         exports => \%exports,
37         groups  => { default => [':all'] },
38     });
39
40     sub import {
41         $CALLER = caller;
42
43         strict->import;
44         warnings->import;
45
46         goto $exporter;
47     }
48
49     sub unimport {
50     }
51 };
52
53 1;
54