Finish Util -> Utils
[gitmo/Perl-Critic-Dynamic-Moose.git] / lib / Perl / Critic / Utils / Moose.pm
CommitLineData
8013ebe8 1package Perl::Critic::Utils::Moose;
8a69e820 2use strict;
3use warnings;
7b3c959c 4use Sub::Exporter -setup => {
5 exports => ['meta_type'],
6};
8a69e820 7
8my @types = (
9 [ 'Moose::Meta::Role' => 'role' ],
10 [ 'Moose::Meta::TypeCoercion' => 'type coercion' ],
11 [ 'Moose::Meta::TypeConstraint' => 'type constraint' ],
12
13 [ 'Class::MOP::Method' => 'method' ],
14 [ 'Class::MOP::Attribute' => 'attribute' ],
15 [ 'Class::MOP::Class' => 'class' ],
16 [ 'Class::MOP::Module' => 'module' ],
17 [ 'Class::MOP::Package' => 'package' ],
18);
19
20sub meta_type {
21 my $meta = shift;
22
23 for (@types) {
24 my ($class, $name) = @$_;
25 return $name if $meta->isa($class);
26 }
27
28 return undef;
29}
30
311;
32