A NOTE regarding a call to attach in 'recordr/R/Record.R'
It is critical to the operation of the recordr package that it temporarily attaches the environment ".recordr" to the search path to hold the function bindings that will temporarily override a select set of functions with the recordr package version, for example:
attach(NULL, name=".recordr") recordrEnv <- as.environment(".recordr") recordrEnv$ggsave <- recordr::recordr_ggsave
Overriding functions in this manner ensures that the recordr version of a function will be called regardless of package load order, provided that the function is not called with a fully qualified name, i.e. `ggplot2::ggsave', or if the function is inside a package that imports the function (i.e. it is on the search path). Not all instances of a function call will be recorded, but certainly the select set of function calls that recordr overrides and are on the search path will be recorded.
When one of our overridding functions is called, we record the data provenance for the function, i.e. the files specified for read and/or write, then call the intended function, i.e. ggplot2::ggsave.
Using this mechanism, we only override functions while record() is running.
Please note that the first call made in the record()
function is on.exit(recordrShutdown)
,
which simply calls detach(".recordr")
, thereby ensuring that the search path will be restored
when record()
exits.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.