blob: b39b8b5a8d234ad720d46887ed960b10a6026ceb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package Command;
use MooseX::Exporter::Easy;
class_metaroles {
class => ['Command::Role::Class'],
};
sub _command_method_meta {
my ($meta) = @_;
Moose::Meta::Class->create_anon_class(
superclasses => [$meta->method_metaclass],
roles => ['Command::Role::Method'],
cache => 1,
)->name;
}
with_meta command => sub {
my ($meta, $name, $code) = @_;
$meta->add_method(
$name => _command_method_meta($meta)->wrap(
$code,
name => $name,
package_name => $meta->name,
associated_metaclass => $meta
),
);
};
export;
1;
|