learnr (version 0.10.0)

safe: Execute R code in a safe R environment

Description

When rendering (or running) a document with R markdown, it inherits the current R Global environment. This will produce unexpected behaviors, such as poisoning the R Global environment with existing variables. By rendering the document in a new, safe R environment, a vanilla, rendered document is produced.

Usage

safe(expr, ..., show = TRUE, env = safe_env())

Arguments

expr

expression that contains all the necessary library calls to execute. Expressions within callr do not inherit the existing, loaded libraries.

...

parameters passed to callr::r

show

Logical that determines if output should be displayed

env

Environment to evaluate the document in

Details

The environment variable LEARNR_INTERACTIVE will be set to "1" or "0" depending on if the calling session is interactive or not.

Using safe should only be necessary when locally deployed.

Examples

Run this code
# NOT RUN {
# Direct usage
safe(run_tutorial("hello", package = "learnr"))

# Programmatic usage
library(rlang)

expr <- quote(run_tutorial("hello", package = "learnr"))
safe(!!expr)

tutorial <- "hello"
safe(run_tutorial(!!tutorial, package = "learnr"))
# }

Run the code above in your browser using DataCamp Workspace