Why not adopt me?
NAME
Perl::ToPerl6::TransformerFactory - Instantiates Transformer objects.
DESCRIPTION
This is a helper class that instantiates Perl::ToPerl6::Transformer 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::ToPerl6::TransformerFactory object.
-profile is a reference to a Perl::ToPerl6::UserProfile object. This argument is required.
-errors is a reference to an instance of Perl::ToPerl6::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 Transformer object. If the object cannot be instantiated, it will throw a fatal exception. Otherwise, it returns a reference to the new Transformer object.
-name is the name of a Perl::ToPerl6::Transformer subclass module. The
'Perl::ToPerl6::Transformer'
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 Transformer. If
-params
is not defined, we will use the appropriate Transformer parameters from the Perl::ToPerl6::UserProfile.Note that the Transformer will not have had "initialize_if_enabled" in Perl::ToPerl6::Transformer invoked on it, so it may not yet be usable.
create_all_transformers()
-
Constructs and returns one instance of each Perl::ToPerl6::Transformer subclass that is installed on the local system. Each Transformer 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::ToPerl6::Transformer invoked on them, so they may not yet be usable.
SUBROUTINES
Perl::ToPerl6::TransformerFactory has a few static subroutines that are used internally, but may be useful to you in some way.
topological_sort( @transformers )
-
Given a list of Transformer objects, reorder them into the order they need to be run. Variables::FormatSpecialVariables needs to reformat $0 before Variables::FormatMatchVariables transforms $1 into $0, for example. If you need to specify that a Transformer must be run before or after a given transformer or list of transformers, then in your Transformer create a
sub run_before()
and/orsub run_after()
which returns a list of transformers that it must run before and/or after.If a transformer you specified doesn't exist, your transformer code should still run, but with a warning.
site_policy_names()
-
Returns a list of all the Transformer modules that are currently installed in the Perl::ToPerl6:Transformer namespace. These will include modules that are distributed with Perl::ToPerl6 plus any third-party modules that have been installed.
AUTHOR
Jeffrey Goff <drforr@pobox.com>
AUTHOR EMERITUS
Jeffrey Ryan Thalhammer <jeff@imaginative-software.com>
COPYRIGHT
Copyright (c) 2015 Jeffrey Goff. 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.