FunctionReporter {pkgnet} | R Documentation |
Function Interdependency Reporter
Description
This reporter looks at the network of interdependencies of its defined functions. Measures of centrality from graph theory can indicate which function is most important to a package. Combined with unit test coverage information—also provided by this reporter— it can be used as a powerful tool to prioritize test writing.
Details
R6 Method Support:
R6 classes are supported, with their methods treated as functions by the reporter.
R6 methods will be named like
<classname>$<methodtype>$<methodname>
, e.g.,FunctionReporter$private_methods$extract_nodes
.Note that the class name used will be the name of the generator object in the package's namespace.
The
classname
attribute of the class is not used. In general, it is not required to be defined or the same as the generator object name. This attribute is used primarily for S3 dispatch.
Known Limitations:
Using non-standard evaluation to refer to things (e.g, dataframe column names) that have the same name as a function will trick
FunctionReporter
into thinking the function was called. This can be avoided if you don't use reuse function names for other purposes.Functions stored as list items and not assigned to the package namespace will be invisible to
FunctionReporter
.Calls to methods of instantiated R6 or reference objects will not be recognized. We don't have a reliable way of identifying instantiated objects, or identifying their class.
Reference class methods are not yet supported. They will not be identified as nodes by
FunctionReporter
.
Super classes
pkgnet::AbstractPackageReporter
-> pkgnet::AbstractGraphReporter
-> FunctionReporter
Active bindings
report_markdown_path
(character string) path to R Markdown template for this reporter. Read-only.
Methods
Public methods
Inherited methods
Method calculate_default_measures()
Calculates the default node and network measures for this reporter.
Usage
FunctionReporter$calculate_default_measures()
Returns
Self, invisibly.
Method clone()
The objects of this class are cloneable with this method.
Usage
FunctionReporter$clone(deep = FALSE)
Arguments
deep
Whether to make a deep clone.
See Also
Other Network Reporters:
DependencyReporter
,
InheritanceReporter
Other Package Reporters:
DependencyReporter
,
InheritanceReporter
,
SummaryReporter