Suite of tools for managing cached files, targeting use in other R packages. Uses 'rappdirs' for cross-platform paths. Provides utilities to manage cache directories, including targeting files by path or by key; cached directories can be compressed and uncompressed easily to save disk space.
hoard
- manage cached files
Exposes a single R6
object so that when the package is imported in another
package for managing cached files, you don't need to pollute the NAMESPACE
with a bunch of functions. (you can always just hoardr::fxn
, but
with a single object there are other benefits as well [maintaining state, e.g.]).
stable
install.packages("hoardr")
dev version
devtools::install_github("ropensci/hoardr")
library(hoardr)
initialize client
(x <- hoardr::hoard())#> <hoard> #> path: #> cache path:
set cache path
x$cache_path_set("foobar", type = 'tempdir')#> [1] "/var/folders/fc/n7g_vrvn0sx_st0p8lxb3ts40000gn/T//RtmpsvaRsk/R/foobar"
make the directory if doesn't exist
x$mkdir()
put a file in the cache
cat("hello world", file = file.path(x$cache_path_get(), "foo.txt"))
list the files
x$list()#> [1] "/var/folders/fc/n7g_vrvn0sx_st0p8lxb3ts40000gn/T//RtmpsvaRsk/R/foobar/foo.txt"
details
x$details()#> <cached files>#> directory: /var/folders/fc/n7g_vrvn0sx_st0p8lxb3ts40000gn/T//RtmpsvaRsk/R/foobar#> #> file: /foo.txt#> size: 0 mb
delete by file name
x$delete("foo.txt")x$list()#> character(0)
see issue 1
hoardr
in R doing citation(package = 'hoardr')
HoardClient
, called by hoardr()
function, was storing the cache path in an environment inside the R6 class. If multiple instances of HoardClient
exist in the same R session, the cache path for any one then affects all others. Fixed by storing as a private variable int he R6 class instead of in an environment (#14)HoardClient
object to check if one or more files exist, returning a data.frame (#10)cache_path_set()
method on HoardClient
gains new parameter full_path
to make the base cache path directly with a full path rather than using the three other parameters (path
, type
, and prefix
) (#12)key()
and keys()
to use file=TRUE
(#8)