NAME¶
Perl::Critic::PolicyFactory - Instantiates 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.
INTERFACE SUPPORT¶
This is considered to be a non-public class. Its interface is subject to change
without notice.
CONSTRUCTOR¶
- "new( -profile => $profile, -errors => $config_errors
)"
- Returns a reference to a new Perl::Critic::PolicyFactory object.
-profile is a reference to a Perl::Critic::UserProfile object. This
argument is required.
-errors is a reference to an instance of Perl::Critic::ConfigErrors.
This argument is optional. If specified, than any problems found will be
added to the object.
METHODS¶
- "create_policy( -name => $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.
-name 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.
Note that the Policy will not have had "initialize_if_enabled" in
Perl::Critic::Policy invoked on it, so it may not yet be usable.
- " create_all_policies() "
- Constructs and returns one instance of each Perl::Critic::Policy subclass
that is installed on the local system. Each Policy will be created with
the appropriate parameters from the user's configuration profile.
Note that the Policies will not have had "initialize_if_enabled"
in Perl::Critic::Policy invoked on them, so they may not yet be
usable.
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 <jeff@imaginative-software.com>
COPYRIGHT¶
Copyright (c) 2005-2011 Imaginative Software Systems. 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.