## ----setup, include=FALSE----------------------------------------------------- # knitr::opts_chunk$set(eval = TRUE, results = 'hide') Sys.setenv(R_CONFIG_ACTIVE = "default") ## ---- include=FALSE----------------------------------------------------------- knitr::knit_engines$set(yaml = function(options) { code <- paste(options$code, collapse = "\n") options$results <- "hide" varname <- options$output.var if (!is.null(varname)) { assign(varname, code, envir = knitr::knit_global()) } knitr::engine_output(options, code, out = code) } ) set_codeblock_label <- function(x) { sprintf("
%s
", x) } knitr::knit_hooks$set(codeblock_label = function(before, options, name) { if (before) { if (is.character(options[[name]])) { set_codeblock_label(options[[name]]) } else if (options$engine == "yaml") { set_codeblock_label("config.yml") } else { set_codeblock_label(options$engine) } } }) knitr::knit_hooks$set(with_config = local({ old_envvars <- NA function(before, options) { if (before) { config_yml <- base::get(options$config_yml, envir = knitr::knit_global()) .config_file <- config:::write_yaml_as_file(config_yml) new_envvars <- .config_file old_envvars <<- config:::keep_old_envvars(new_envvars) config:::set_new_envvars(new_envvars) } else { config:::reset_envvars(old_envvars) } } })) knitr::opts_chunk$set( codeblock_label = TRUE ) ## ---- with_config=TRUE, config_yml="config_yaml"------------------------------ config <- config::get() config$trials config$dataset ## ---- with_config=TRUE, config_yml="config_yaml"------------------------------ config::get("trials") config::get("dataset") ## ---- with_config=TRUE, config_yml="config_yaml"------------------------------ # set the active configuration globally via Renviron.site or Rprofile.site Sys.setenv(R_CONFIG_ACTIVE = "production") # read configuration value (will return 30 from the "production" config) config::get("trials") ## ---- with_config=TRUE, config_yml="config_yaml"------------------------------ config::is_active("production") ## ----------------------------------------------------------------------------- Sys.setenv(R_CONFIG_ACTIVE = "default") ## ---- eval=FALSE-------------------------------------------------------------- # config <- config::get(file = "conf/config.yml") ## ---- eval=FALSE-------------------------------------------------------------- # config <- config::get(file = "conf/config.yml", use_parent = FALSE)