NAME
Perl::Critic::PolicyFactory - Instantiate Policy objects
DESCRIPTION
This is a helper class that instantiates Perl::Critic::Policy objects with the user's preferred parameters. There are no user-serviceable parts here.
CONSTRUCTOR
new( -profile => $profile, -policy_names => \@policy_names )
-
Returns a reference to a new Perl::Critic::PolicyFactory object.
-profile is a reference to a Perl::Critic::UserProfile object. This argument is required.
-policy_names is a reference to an array of fully-qualified Policy names. Internally, the PolicyFactory will create one instance each of the named Policies.
METHODS
create_policy( -policy => $policy_name, -params => \%param_hash )
-
Creates one Policy object. If the object cannot be instantiated, it will throw a fatal exception. Otherwise, it returns a reference to the new Policy object.
-policy is the name of a Perl::Critic::Policy subclass module. The
'Perl::Critic::Policy'
portion of the name can be omitted for brevity. This argument is required.-params is an optional reference to hash of parameters that will be passed into the constructor of the Policy. If
-params
is not defined, we will use the appropriate Policy parameters from the Perl::Critic::UserProfile. policies()
-
Returns a list of of references to all the Perl::Critic::Policy objects that were created by this PolicyFactory.
SUBROUTINES
Perl::Critic::PolicyFactory has a few static subroutines that are used internally, but may be useful to you in some way.
site_policy_names()
-
Returns a list of all the Policy modules that are currently installed in the Perl::Critic:Policy namespace. These will include modules that are distributed with Perl::Critic plus any third-party modules that have been installed.
AUTHOR
Jeffrey Ryan Thalhammer <thaljef@cpan.org>
COPYRIGHT
Copyright (c) 2005-2006 Jeffrey Ryan Thalhammer. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of this license can be found in the LICENSE file included with this module.