logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

App::CPANTS::Lint - front-end to Module::CPANTS::Analyse

Author

       Kenichi Ishigaki, <ishigaki@cpan.org>

Description

       App::CPANTS::Lint is a core of "cpants_lint.pl" script to check the Kwalitee of a distribution. See the
       script for casual usage. You can also use this from other modules for finer control.

Methods

new
       Takes an optional hash (which will be passed into Module::CPANTS::Analyse internally) and creates a
       linter object.

       Available options are:

       verbose
           Makes Module::CPANTS::Analyse verbose. False by default.

       core_only
           If  true,  the  "lint"  method  (see  below)  returns  true  even  if  "extra"  metrics  (as  well as
           "experimental" metrics) fail. This may be useful  if  you  only  care  Kwalitee  rankings.  False  by
           default.

       experimental
           If  true,  failed  "experimental"  metrics are also reported (via "report" method). False by default.
           Note that "experimental" metrics are not taken into account while calculating a score.

       save
           If true, "output_report" method writes to a file instead of writing to STDOUT.

       dump, yaml, json
           If true, "report" method returns a formatted dump of the stash (see below).

       search_path
           If you'd like to use extra metrics modules, pass a reference to an array of their parent namespace(s)
           to search. Metrics modules under Module::CPANTS::Kwalitee namespace are always used.

   lint
       Takes a path to a distribution tarball  and  analyses  it.  Returns  true  if  the  distribution  has  no
       significant issues (experimental metrics are always ignored). Otherwise, returns false.

       Note  that  the  result  doesn't always match with what is shown at the CPANTS website, because there are
       metrics that are only available  at  the  site  for  various  reasons  (some  of  them  require  database
       connection, and some are not portable enough).

   report
       Returns  a report string that contains the details of failed metrics (even if "lint" method returns true)
       and a Kwalitee score.

       If "dump" (or "yaml", "json") is set when you create an  App::CPANTS::Lint  object,  "report"  returns  a
       formatted dump of the stash.

   result
       Returns  a reference to a hash that contains the details of failed metrics and a Kwalitee score. Internal
       structure may change without notice, but it always has an "ok" field  (which  holds  a  return  value  of
       "lint" method) at least.

   stash
       Returns  a  reference  to  a  hash  that  contains  the  details  of  analysis  (stored  in  a  stash  in
       Module::CPANTS::Analyse). Internal structure may change without notice, but it always  has  a  "kwalitee"
       field (which holds a reference to a hash that contains the result of each metric) at least.

   score
       Returns a Kwalitee score.

   output_report
       Writes a report to STDOUT (or to a file).

   report_file
       Returns  a  path  to  a report file, which should have the same distribution name with a version, plus an
       extension appropriate to the output format. (eg. "Foo-Bar-1.42.txt", "Foo-Bar-1.42.yml" etc)

Name

       App::CPANTS::Lint - front-end to Module::CPANTS::Analyse

See Also

       Module::CPANTS::Analyse

       Test::Kwalitee

Synopsis

           use App::CPANTS::Lint;

           my $app = App::CPANTS::Lint->new(verbose => 1);
           $app->lint('path/to/Foo-Dist-1.42.tgz') or print $app->report;

           # if you need raw data
           $app->lint('path/to/Foo-Dist-1.42.tgz') or return $app->result;

           # if you need to look at the details of analysis
           $app->lint('path/to/Foo-Dist-1.42.tgz');
           print Data::Dumper::Dumper($app->stash);

See Also