NAME
    Code::TidyAll - Engine for tidyall, your all-in-one code tidier and
    validator

VERSION
    version 0.17

SYNOPSIS
        use Code::TidyAll;

        my $ct = Code::TidyAll->new_from_conf_file(
            '/path/to/conf/file',
            ...
        );

        # or

        my $ct = Code::TidyAll->new(
            root_dir => '/path/to/root',
            plugins  => {
                perltidy => {
                    select => 'lib/**/*.(pl|pm)',
                    argv => '-noll -it=2',
                },
                ...
            }
        );

        # then...

        $ct->process_paths($file1, $file2);

DESCRIPTION
    This is the engine used by tidyall - read that first to get an overview.

    You can call this API from your own program instead of executing
    `tidyall'.

CONSTRUCTION
  Constructor methods
    new (%params)
        The regular constructor. Must pass at least *plugins* and
        *root_dir*.

    new_with_conf_file ($conf_file, %params)
        Takes a conf file path, followed optionally by a set of key/value
        parameters. Reads parameters out of the conf file and combines them
        with the passed parameters (the latter take precedence), and calls
        the regular constructor.

        If the conf file or params defines *tidyall_class*, then that class
        is constructed instead of `Code::TidyAll'.

  Constructor parameters
    plugins
        Specify a hash of plugins, each of which is itself a hash of
        options. This is equivalent to what would be parsed out of the
        sections in the configuration file.

    backup_ttl
    check_only
    data_dir
    iterations
    mode
    no_backups
    no_cache
    output_suffix
    quiet
    root_dir
    verbose
        These options are the same as the equivalent `tidyall' command-line
        options, replacing dashes with underscore (e.g. the `backup-ttl'
        option becomes `backup_ttl' here).

METHODS
    process_paths (path, ...)
        Call process_file on each file; descend recursively into each
        directory if the `recursive' flag is on. Return a list of
        Code::TidyAll::Result objects, one for each file.

    process_file (file)
        Process the *file*, meaning

        *   Check the cache and return immediately if file has not changed

        *   Apply appropriate matching plugins

        *   Print success or failure result to STDOUT, depending on
            quiet/verbose settings

        *   Write the cache if enabled

        *   Return a Code::TidyAll::Result object

    process_source (*source*, *path*)
        Like process_file, but process the *source* string instead of a
        file, and do not read from or write to the cache. You must still
        pass the relative *path* from the root as the second argument, so
        that we know which plugins to apply. Return a Code::TidyAll::Result
        object.

    plugins_for_path (*path*)
        Given a relative *path* from the root, return a list of
        Code::TidyAll::Plugin objects that apply to it, or an empty list if
        no plugins apply.

    find_conf_file (*conf_names*, *start_dir*)
        Class method. Start in the *start_dir* and work upwards, looking for
        one of the *conf_names*. Return the pathname if found or throw an
        error if not found.

    find_matched_files
        Returns a list of sorted files that match at least one plugin in
        configuration.

SEE ALSO
    Code::TidyAll

AUTHOR
    Jonathan Swartz <swartz@pobox.com>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2011 by Jonathan Swartz.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.