1 package Perl::Critic::Policy::Dynamic::Moose::ProhibitPublicBuilders;
3 extends 'Perl::Critic::Policy::Dynamic::Moose';
5 Readonly::Scalar my $DESC => q{Builder method name without a leading underscore};
6 Readonly::Scalar my $EXPL => q{Prefix builder method names with an underscore};
8 sub violates_metaclass {
14 my $attributes = $meta->get_attribute_map;
15 for my $name (keys %$attributes) {
16 my $attribute = $attributes->{$name};
18 next if !$attribute->has_builder;
20 if ($attribute->builder =~ /^_/) {
21 push @violations, $self->violation($DESC, $EXPL);
28 __PACKAGE__->meta->make_immutable;