X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FPerl%2FCritic%2FPolicy%2FDynamicMoose%2FProhibitPublicBuilders.pm;h=9cbbe5d0edb31fb87442bf118a249de986444259;hb=c562b9cbe41b48f3685b49ed15d928e0a3430597;hp=7322bb2dbc671211b5ede71ef25a2f134157ac44;hpb=8013ebe8b54a7699534c5b6cbce873c250c25839;p=gitmo%2FPerl-Critic-Dynamic-Moose.git diff --git a/lib/Perl/Critic/Policy/DynamicMoose/ProhibitPublicBuilders.pm b/lib/Perl/Critic/Policy/DynamicMoose/ProhibitPublicBuilders.pm index 7322bb2..9cbbe5d 100644 --- a/lib/Perl/Critic/Policy/DynamicMoose/ProhibitPublicBuilders.pm +++ b/lib/Perl/Critic/Policy/DynamicMoose/ProhibitPublicBuilders.pm @@ -2,9 +2,11 @@ package Perl::Critic::Policy::DynamicMoose::ProhibitPublicBuilders; use Moose; extends 'Perl::Critic::Policy::DynamicMoose'; +use Perl::Critic::Utils ':severities'; use Perl::Critic::Utils::Moose 'meta_type'; Readonly::Scalar my $EXPL => q{Prefix builder method names with an underscore}; +sub default_severity { $SEVERITY_MEDIUM } augment applies_to_metaclass => sub { 'Moose::Meta::Role' }; @@ -45,3 +47,33 @@ no Moose; 1; +__END__ + +=head1 NAME + +Perl::Critic::Policy::DynamicMoose::ProhibitPublicBuilders + +=head1 DESCRIPTION + +An attribute's L method is used to provide a default value +for that attribute. Such methods are rarely intended for external use, and +should not be considered part of that class's public API. Thus we recommend +that your attribute builder methods' names are prefixed with an underscore +to mark them private. + +=head1 WARNING + +B Most L Policies (including all the ones that +ship with Perl::Critic> use pure static analysis -- they never compile nor +execute any of the code that they analyze. However, this policy is very +different. It actually attempts to compile your code and then compares the +subroutines mentioned in your code to those found in the symbol table. +Therefore you should B use this Policy on any code that you do not trust, +or may have undesirable side-effects at compile-time (such as connecting to the +network or mutating files). + +For this Policy to work, all the modules included in your code must be +installed locally, and must compile without error. + +=cut +