More tests
[gitmo/Perl-Critic-Dynamic-Moose.git] / lib / Perl / Critic / Policy / DynamicMoose / ProhibitPublicBuilders.pm
CommitLineData
84a1bb62 1package Perl::Critic::Policy::DynamicMoose::ProhibitPublicBuilders;
ac490c58 2use Moose;
84a1bb62 3extends 'Perl::Critic::Policy::DynamicMoose';
ac490c58 4
9e6b568b 5Readonly::Scalar my $DESC => q{Builder method name without a leading underscore};
6Readonly::Scalar my $EXPL => q{Prefix builder method names with an underscore};
ac490c58 7
8sub violates_metaclass {
9 my $self = shift;
10 my $meta = shift;
11
12 my @violations;
13
14 my $attributes = $meta->get_attribute_map;
15 for my $name (keys %$attributes) {
16 my $attribute = $attributes->{$name};
17
18 next if !$attribute->has_builder;
19
379a5f59 20 if ($attribute->builder !~ /^_/) {
ac490c58 21 push @violations, $self->violation($DESC, $EXPL);
22 }
23 }
24
25 return @violations;
26}
27
ac490c58 28no Moose;
29
301;
31