wither

R-CMD-check

Run a block or expression temporarily under a different here() root.

This is useful if you need to source R code from another project for example (as might be the case with git submodules)

Installation

You can install the development version of wither from GitHub with:

# install.packages("pak")
pak::pak("torbjorn/wither")

Example

with_here

with_here() evaluates an expression under a temporarily different here root():

library(here)
library(wither)

was <- here()

d <- tempfile()
dir.create(d)

# have here() be somewhere else for an expression
is_now <- with_here(d, here())

stopifnot(normalizePath(was) != normalizePath(is_now))

# clean up
unlink(d, recursive=TRUE)

local_here

local_here() evaluates the remainder of a block under a temporarily different here root():

library(here)
library(wither)

was <- here()

d <- tempfile()
dir.create(d)

local({

    # have here() be somewhere else for the rest of the block
    local_here(d)

    is_now <- here()

    stopifnot(normalizePath(was) != normalizePath(is_now))

})

# clean up
unlink(d, recursive=TRUE)