library(fusen)
teaching
to startcreate_fusen("path/to/new/project", template = "teaching")
development
chunk with library(testthat)
insidedescription
asking to describe your package and license it
"dev/flat_teaching.Rmd"
template to write your documentation and build your functions and test your examples.
function
gets the code of a functionexample
gets the code for examples of using the function. This will be used for function @examples
and will be kept for the vignettetests
gets the code for unit testingdevelopment
gets the code for development purposes, usually only used once like {usethis} functionsCreate multiple
"flat_xxx.Rmd"
files withfusen::add_flat_template(template = "add")
if needed
examples
and tests
chunks need to be placed after the associated function
chunkfunction
chunk to store them in the same R file, but they won’t have @examples
. Only the first function of the chunk will be able to get examples.examples-myfunction
, examples-myotherfunction
, …function
can be named fun-
or fun_
or fun-my_function_name
example
can be named ex-
or ex_
or ex-my_function_name
tests
can be named test-
or test-my_function_name
development
can be named dev-
or dev_
or dev-my_function_name
add_flat_template("add")
for template additionnal
\dontrun{}
You can use \dontrun{}
in an example chunk as follows:
#' \dontrun{
<- 1 + 1
an_example
an_example#' }
#' OR
#' \dontrun{
#' an_example <- 1 + 1
#' an_example
#' }
# Create a new project
<- tempfile("dummypackage")
dummypackage dir.create(dummypackage)
# Add an additional dev template
add_flat_template(template = "add", pkg = dummypackage)
#> Created file .here in /tmp/Rtmpd2mC35/dummypackage12c4052de29bcf . Please start a new R session in the new project directory.
#> [1] "/tmp/Rtmpd2mC35/dummypackage12c4052de29bcf/dev/flat_additional.Rmd"
# Delete dummy package
unlink(dummypackage, recursive = TRUE)
# Create a new project
<- tempfile("dummypackage")
dummypackage dir.create(dummypackage)
fill_description(
pkg = dummypackage,
fields = list(
Title = "Build A Package From Rmarkdown file",
Description = paste("Use Rmarkdown First method to build your package.",
"Start your package with documentation.",
"Everything can be set from a Rmarkdown file in your project."),
`Authors@R` = c(
person("Sebastien", "Rochette", email = "sebastien@thinkr.fr",
role = c("aut", "cre"), comment = c(ORCID = "0000-0002-1565-9313")),
person(given = "ThinkR", role = "cph")
)
)
)#> ! Title was modified to 'Title Case'.
#> [1] "/tmp/Rtmpd2mC35/dummypackage12c405124f25fb/DESCRIPTION"
# Delete dummy package
unlink(dummypackage, recursive = TRUE)
These are only included in the flat template file, their content will not be part of the package anywhere else.
Name the following chunk with {r development-1, eval=FALSE}
# Run but keep eval=FALSE to avoid infinite loop
usethis::use_mit_license("Sébastien Rochette")
# Execute in the console directly
fusen::inflate(flat_file = "dev/dev_history.Rmd")
You’re one inflate from flat paper to box. Build your package from the flat Rmd template using the inflate()
command below.
After that, you can:
"DESCRIPTION"
file has been updated"R/"
directory"tests/testthat/"
directory"vignettes/"
directorypkgdown::build()
for vignette and examples checksThis code creates a package in a temporary directory. You will most probably be inside your project when ready to inflate, hence there will be no need to specify the directory of the package. This code is here as a reproducible example for you to test.
# Create a new project
<- tempfile("dummypackage")
dummypackage dir.create(dummypackage)
# {fusen} steps
fill_description(pkg = dummypackage, fields = list(Title = "Dummy Package"))
<- add_flat_template(template = "teaching",
dev_file pkg = dummypackage, overwrite = TRUE)
inflate(
pkg = dummypackage,
flat_file = dev_file,
vignette_name = "Exploration of my Data",
check = FALSE
)
# Explore directory of the package
browseURL(dummypackage)
# Delete dummy package
unlink(dummypackage, recursive = TRUE)
# Create a new project
<- tempfile(pattern = "dummy")
dummypackage
# {fusen} steps
<- create_fusen(dummypackage, template = "teaching", open = FALSE)
dev_file # Description
::fill_description(pkg = dummypackage, fields = list(Title = "Dummy Package"))
fusen
# From inside the package
::with_project(dummypackage, {
usethis# Define License with use_*_license()
::use_mit_license("Sébastien Rochette")
usethis
# You may need to execute inflate() in the console directly
::inflate(pkg = dummypackage,
fusenflat_file = dev_file,
vignette_name = "Get started")
})