Title: | Create Disposable R Packages for Testing |
---|---|
Description: | Create disposable R packages for testing. You can create, install and load multiple R packages with a single function call, and then unload, uninstall and destroy them with another function call. This is handy when testing how some R code or an R package behaves with respect to other packages. |
Authors: | Gábor Csárdi |
Maintainer: | Gábor Csárdi <[email protected]> |
License: | MIT + file LICENSE |
Version: | 1.0.3 |
Built: | 2024-12-22 04:48:03 UTC |
Source: | https://github.com/gaborcsardi/disposables |
Get rid of temporary packages
dispose_packages(packages, unattach = TRUE, unload = unattach, delete = TRUE, delete_lib_dir = delete)
dispose_packages(packages, unattach = TRUE, unload = unattach, delete = TRUE, delete_lib_dir = delete)
packages |
A list returned by |
unattach |
Whether to unattach the packages. |
unload |
Whether to unload the packages. It is not possible to unload without unattaching. |
delete |
Whether to delete the installed packages from the
|
delete_lib_dir |
Whether to delete the the whole |
pkg <- make_packages( foo1 = { f <- function() print("hello!") ; d <- 1:10 }, foo2 = { f <- function() print("hello again!") ; d <- 11:20 } ) foo1::f() foo2::f() foo1::d foo2::d ## Unattach only dispose_packages(pkg, unload = FALSE, delete = FALSE) "package:foo1" %in% search() "foo1" %in% loadedNamespaces() dir(pkg$lib_dir) ## Unload dispose_packages(pkg, delete = FALSE) "package:foo1" %in% search() "foo1" %in% loadedNamespaces() dir(pkg$lib_dir) ## Delete completely dispose_packages(pkg) "package:foo1" %in% search() "foo1" %in% loadedNamespaces() file.exists(pkg$lib_dir)
If a package with the same name as a disposable one, is
loaded, then it will be unloaded. If a package with same name
as a disposable on is installed in lib_dir
, then
it will be overwritten. (lib_dir
is usually a temporary
directory, so this is not a big problem.)
make_packages(..., lib_dir = tempfile(), imports = character(), quiet = TRUE)
make_packages(..., lib_dir = tempfile(), imports = character(), quiet = TRUE)
... |
Named expressions. A separate package with the given name is created for each. |
lib_dir |
Directory to install the package to. Defaults to a temporary directory that is deleted once the R session is over. |
imports |
The 'Imports' field in the DESCRIPTION file, the packages to import in each disposable package. It can be a character vector, which applies to all packages, or a list of character vectors, one for each package. |
quiet |
Whether to show the installation process of disposable packages. |
Note that if you specify lib_dir
and it points to an
existing directory, make_package
overwrites the packages
there. If an error happens during installation or loading of
the disposables packages, then it will not restore the
original contents of lib_dir
, but it will remove
all newly installed disposable packages, even the ones
that were installed cleanly.
A named list with entries:
lib_dir
The directory in which the packages are
installed.
package
The named of the packages.
pkg <- make_packages( foo1 = { f <- function() print("hello!") ; d <- 1:10 }, foo2 = { f <- function() print("hello again!") ; d <- 11:20 } ) foo1::f() foo2::f() foo1::d foo2::d dispose_packages(pkg)
## See above and also in the README: https://r-pkg.org/pkg/disposables
## See above and also in the README: https://r-pkg.org/pkg/disposables