This generic and some methods will do whatever is required to prepare an object for saving to disk (or RAM) via e.g., saveRDS. Some objects (e.g., terra's Spat*) cannot be saved without first wrapping them. Also, file-backed objects are similar.

.dealWithClass(
  obj,
  cachePath,
  drv = getDrv(getOption("reproducible.drv", NULL)),
  conn = getOption("reproducible.conn", NULL),
  verbose = getOption("reproducible.verbose")
)

# S3 method for list
.dealWithClass(
  obj,
  cachePath,
  drv = getDrv(getOption("reproducible.drv", NULL)),
  conn = getOption("reproducible.conn", NULL),
  verbose = getOption("reproducible.verbose")
)

# S3 method for environment
.dealWithClass(
  obj,
  cachePath,
  drv = getDrv(getOption("reproducible.drv", NULL)),
  conn = getOption("reproducible.conn", NULL),
  verbose = getOption("reproducible.verbose")
)

# S3 method for default
.dealWithClass(
  obj,
  cachePath,
  drv = getDrv(getOption("reproducible.drv", NULL)),
  conn = getOption("reproducible.conn", NULL),
  verbose = getOption("reproducible.verbose")
)

# S3 method for default
.dealWithClassOnRecovery(
  obj,
  cachePath,
  cacheId,
  drv = getDrv(getOption("reproducible.drv", NULL)),
  conn = getOption("reproducible.conn", NULL)
)

.dealWithClassOnRecovery(
  obj,
  cachePath,
  cacheId,
  drv = getDrv(getOption("reproducible.drv", NULL)),
  conn = getOption("reproducible.conn", NULL)
)

# S3 method for environment
.dealWithClassOnRecovery(
  obj,
  cachePath,
  cacheId,
  drv = getDrv(getOption("reproducible.drv", NULL)),
  conn = getOption("reproducible.conn", NULL)
)

# S3 method for list
.dealWithClassOnRecovery(
  obj,
  cachePath,
  cacheId,
  drv = getDrv(getOption("reproducible.drv", NULL)),
  conn = getOption("reproducible.conn", NULL)
)

Arguments

obj

Any arbitrary R object.

cachePath

A repository used for storing cached objects. This is optional if Cache is used inside a SpaDES module.

drv

if using a database backend, drv must be an object that inherits from DBIDriver e.g., RSQLite::SQLite()

conn

an optional DBIConnection object, as returned by dbConnect().

verbose

Numeric, -1 silent (where possible), 0 being very quiet, 1 showing more messaging, 2 being more messaging, etc. Default is 1. Above 3 will output much more information about the internals of Caching, which may help diagnose Caching challenges. Can set globally with an option, e.g., options('reproducible.verbose' = 0) to reduce to minimal

cacheId

Used strictly for messaging. This should be the cacheId of the object being recovered.

Value

Returns an object that can be saved to disk e.g., via saveRDS.