Title: | Temporarily Change Project Root |
Version: | 0.1.0 |
Description: | Lets you temporarily execute an expression or a local block with a different here() root in the 'here' package. This is useful for sourcing code in other projects which expect the root directory of here() to be the project directory of those projects. This may be the case with git submodules for example. |
License: | MIT + file LICENSE |
Encoding: | UTF-8 |
RoxygenNote: | 7.3.2 |
Suggests: | devtools, testthat (≥ 3.0.0) |
Config/testthat/edition: | 3 |
Imports: | fs, here, withr |
URL: | https://github.com/torbjorn/wither |
BugReports: | https://github.com/torbjorn/wither/issues |
NeedsCompilation: | no |
Packaged: | 2024-09-10 10:33:15 UTC; tlindahl |
Author: | Torbjørn Lindahl |
Maintainer: | Torbjørn Lindahl <torbjorn.lindahl@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2024-09-12 17:40:02 UTC |
Temporarily Change Project Root
Description
Temporarily change the here() root
Usage
with_here(new_here, expr, chdir = FALSE, verbose = FALSE)
local_here(
new_here,
chdir = FALSE,
verbose = FALSE,
.local_envir = parent.frame()
)
Arguments
new_here |
new temporary here root directory |
expr |
expression to evaluate |
chdir |
also temporarily change working directory |
verbose |
show here's messages on setting new root |
.local_envir |
the environment to use for scoping, see |
Details
Changes here::here()
to temporarily point to a new
directory. Automatically changes back to the original value when
finished.
The with_* and local_* flavours of this functionality mimics that which is typically used in the withr package.
Value
with_here()
returns the result of the
expression. local_here()
returns the original value of
here(), before the change.
Author(s)
Torbjørn Lindahl
Examples
library(here)
library(withr)
d <- local_tempdir()
cat("here() is initially:", here(), "\n")
# temporarily do things uner a different here() root:
with_here(d, cat("but here() is now:", here(), "\n"))
# check that everything is shifted back
cat("here() is now again:", here(), "\n")
local({
d <- local_tempdir()
cat("here was initially: ", here(), "\n")
local_here(d)
cat("after local_here(), here() is: ",here(),"\n")
stopifnot(normalizePath(d) == normalizePath(here()))
# do something that requires here() be elsewhere
})
cat("outside the block, here() is again:", here(), "\n")