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

Dist::Zilla::Role::PPI - a role for plugins which use PPI

Author

       Ricardo SIGNES 😏 <cpan@semiotic.systems>

Description

       This role provides some common utilities for plugins which use PPI.

Methods

ppi_document_for_file
         my $document = $self->ppi_document_for_file($file);

       Given a dzil file object (anything that does Dist::Zilla::Role::File), this method returns a new
       PPI::Document for that file's content.

       Internally, this method caches these documents. If multiple plugins want a document for the same file,
       this avoids reparsing it.

   save_ppi_document_to_file
         my $document = $self->save_ppi_document_to_file($document,$file);

       Given a PPI::Document and a dzil file object (anything that does Dist::Zilla::Role::File), this method
       saves the serialized document in the file.

       It also updates the internal PPI document cache with the new document.

   document_assigns_to_variable
         if( $self->document_assigns_to_variable($document, '$FOO')) { ... }

       This method returns true if the document assigns to the given variable (the sigil must be included).

Name

       Dist::Zilla::Role::PPI - a role for plugins which use PPI

Perl Version

       This module should work on any version of perl still receiving updates from the Perl 5 Porters.  This
       means it should work on any version of perl released in the last two to three years.  (That is, if the
       most recently released version is v5.40, then this module should work on both v5.40 and v5.38.)

       Although it may work on older versions of perl, no guarantee is made that the minimum required version
       will not be increased.  The version may be increased for any reason, and there is no promise that patches
       will be accepted to lower the minimum required perl.

Version

       version 6.032

See Also