packrat/lib/x86_64-w64-mingw32/3.4.3/rprojroot/doc/rprojroot.R

## ------------------------------------------------------------------------
basename(getwd())

## ------------------------------------------------------------------------
rprojroot::is_r_package

## ------------------------------------------------------------------------
rprojroot::is_rstudio_project

## ------------------------------------------------------------------------
rprojroot::has_file(".git/index")

## ------------------------------------------------------------------------
root <- rprojroot::is_r_package

## ------------------------------------------------------------------------
readLines(root$find_file("DESCRIPTION"), 3)

## ------------------------------------------------------------------------
root_file <- root$make_fix_file()

## ------------------------------------------------------------------------
withr::with_dir(
  "../..",
  readLines(root_file("DESCRIPTION"), 3)
)

## ------------------------------------------------------------------------
library(rprojroot)

# List all files and directories below the root
dir(find_root(has_file("DESCRIPTION")))


## ---- eval = FALSE-------------------------------------------------------
#  rel_path_from_vignettes <- "../R/rrmake.R"
#  rel_path_from_vignettes <- file.path("..", "R", "rrmake.R") ##identical
#  

## ---- eval = FALSE-------------------------------------------------------
#  rel_path_from_root <- "R/rrmake.R"
#  rel_path_from_root <- file.path("R", "rrmake.R") ##identical

## ------------------------------------------------------------------------
has_file("DESCRIPTION")

## ------------------------------------------------------------------------
# Specify a path/to/file relative to the root
rel_path_from_root <- find_root_file("R", "rrmake.R", criterion = has_file("DESCRIPTION"))

## ---- eval = FALSE-------------------------------------------------------
#  rel_path_from_testthat <- "../../R/rrmake.R"

## ------------------------------------------------------------------------
# Specify a path/to/file relative to the root
rel_path_from_root <- find_root_file("R", "rrmake.R", criterion = has_file("DESCRIPTION"))

## ------------------------------------------------------------------------
# Specify a path/to/file relative to the root
rel_path_from_root <- find_root_file("R", "rrmake.R", criterion = has_file("DESCRIPTION"))

# Find a file relative to the root
file.exists(rel_path_from_root)

## ------------------------------------------------------------------------
has_file("DESCRIPTION")

## ------------------------------------------------------------------------
as.root_criterion("DESCRIPTION")

## ------------------------------------------------------------------------
criteria

## ------------------------------------------------------------------------
has_license <- has_file("LICENSE")
has_license

is_projecttemplate_project <- has_file("config/global.dcf", "^version: ")
is_projecttemplate_project

## ------------------------------------------------------------------------
is_r_package | is_rstudio_project

## ------------------------------------------------------------------------
# Print first lines of the source for this document
head(readLines(find_package_root_file("vignettes", "rprojroot.Rmd")))

## ------------------------------------------------------------------------
P <- find_package_root_file

# Use a shorter alias
file.exists(P("vignettes", "rprojroot.Rmd"))

## ----error = TRUE--------------------------------------------------------
# Use the has_license criterion to find the root
R <- has_license$find_file
R

# Our package does not have a LICENSE file, trying to find the root results in an error
R()

## ------------------------------------------------------------------------
# Define a function that computes file paths below the current root
F <- is_r_package$make_fix_file()
F

# Show contents of the NAMESPACE file in our project
readLines(F("NAMESPACE"))

## ------------------------------------------------------------------------
# Print the size of the namespace file, working directory outside the project
withr::with_dir(
  "../..",
  file.size(F("NAMESPACE"))
)

## ------------------------------------------------------------------------
is_testthat

## ------------------------------------------------------------------------
dir(is_testthat$find_file("hierarchy", path = is_r_package$find_file()))

## ---- eval = FALSE-------------------------------------------------------
#  my_fun_run <- do.call(my_fun, my_args)
#  
#  testthat::test_that(
#    "my_fun() returns expected output",
#    testthat::expect_equal(
#      my_fun_run,
#      expected_output
#    )
#  )

## ---- eval = FALSE-------------------------------------------------------
#  ## saved to tests/testthat/helper.R
#  get_my_path <- function(file_name) {
#    rprojroot::find_testthat_root_file(
#      "testing_data", filename
#    )
#  }

## ---- eval = FALSE-------------------------------------------------------
#  ## Find the correct path with your custom rprojroot helper function
#  path_to_my_args_file <- get_my_path("my_args.Rdata")
#  
#  ## Load the input arguments
#  load(file = path_to_my_args_file)
#  
#  ## Run the function with those arguments
#  my_fun_run <- do.call(my_fun,my_args)
#  
#  ## Load the historical expectation with the helper
#  load(file = get_my_path("expected_output.Rdata"))
#  
#  ## Pass all tests and achieve nirvana
#  testthat::test_that(
#    "my_fun() returns expected output",
#    testthat::expect_equal(
#      my_fun_run,
#      expected_output
#    )
#  )
UBC-MDS/Karl documentation built on May 22, 2019, 1:53 p.m.