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

VERSION
   version 0.20

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 <[email protected]>

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.