|new(-source => $source_code, -filename-override => $filename, -program-extensions => [program_extensions])||
Create a new instance referencing a PPI::Document instance. The
$source_code can be the name of a file, a reference to a scalar
containing actual source code, or a PPI::Document or
In the event that $source_code is a reference to a scalar containing actual source code or a PPI::Document, the resulting Perl::Critic::Document will not have a filename. This may cause Perl::Critic::Document to incorrectly classify the source code as a module or script. To avoid this problem, you can optionally set the -filename-override to force the Perl::Critic::Document to have a particular $filename. Do not use this option if $source_code is already the name of a file, or is a reference to a PPI::Document::File.
The -program-extensions argument is optional, and is a reference to a list of strings and/or regular expressions. The strings will be made into regular expressions matching the end of a file name, and any document whose file name matches one of the regular expressions will be considered a program.
If -program-extensions is not specified, or if it does not determine the document type, the document will be considered to be a program if the source has a shebang line or its file name (if any) matches m/ [.] PL \z /smx.
ppi_document() Accessor for the wrapped PPI::Document instance. Note that altering this instance in any way can cause unpredictable failures in Perl::Critics subsequent analysis because some caches may fall out of date. find($wanted) find_first($wanted) find_any($wanted) Caching wrappers around the PPI methods. If $wanted is a simple PPI class name, then the cache is employed. Otherwise we forward the call to the corresponding method of the PPI::Document instance. namespaces() Returns a list of the namespaces (package names) in the document. subdocuments_for_namespace($namespace) Returns a list of sub-documents containing the elements in the given namespace. For example, given that the current document is for the source
foo(); package Foo; package Bar; package Foo;
ppix_regexp_from_element($element) Caching wrapper around PPIx::Regexp->new($element). If $element is a PPI::Element the cache is employed, otherwise it just returns the results of PPIx::Regexp->new(). In either case, it returns undef unless the argument is something that PPIx::Regexp actually understands. element_is_in_lexical_scope_after_statement_containing( $inner, $outer ) Is the $inner element in lexical scope after the statement containing the $outer element?
In the case where $outer is itself a scope-defining element, returns true if $outer contains $inner. In any other case, $inner must be after the last element of the statement containing $outer, and the innermost scope for $outer also contains $inner.
This is not the same as asking whether $inner is visible from $outer.
filename() Returns the filename for the source code if applicable (PPI::Document::File) or undef otherwise (PPI::Document). isa( $classname ) To be compatible with other modules that expect to get a PPI::Document, the Perl::Critic::Document class masquerades as the PPI::Document class. highest_explicit_perl_version() Returns a version object for the highest Perl version requirement declared in the document via a use or require statement. Returns nothing if there is no version statement. uses_module($module_or_pragma_name) Answers whether there is a use, require, or no of the given name in this document. Note that there is no differentiation of modules vs. pragmata here. process_annotations() Causes this Document to scan itself and mark which lines & policies are disabled by the "## no critic" annotations. line_is_disabled_for_policy($line, $policy_object) Returns true if the given $policy_object or $policy_name has been disabled for at $line in this Document. Otherwise, returns false. add_annotation( $annotation ) Adds an $annotation object to this Document. annotations() Returns a list containing all the Perl::Critic::Annotations that were found in this Document. add_suppressed_violation($violation) Informs this Document that a $violation was found but not reported because it fell on a line that had been suppressed by a "## no critic" annotation. Returns $self. suppressed_violations() Returns a list of references to all the Perl::Critic::Violations that were found in this Document but were suppressed. is_program() Returns whether this document is considered to be a program. is_module() Returns whether this document is considered to be a Perl module.
Chris Dolan <firstname.lastname@example.org>
Copyright (c) 2006-2011 Chris Dolan.
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.
|perl v5.20.3||PERL::CRITIC::DOCUMENT (3)||2016-04-03|