library(fusen)
get_package_structure()
is a function that helps developers understand the package structure. It reads the dev/config_fusen.yaml
file, adds the list of resulting functions and extra description of files.
You can know:
With draw_package_structure()
, you can draw a tree of the package structure in the console.
This also works for any R package, not only for fusen
built packages.
#' \dontrun{
#' # This only works inside a 'fusen' built package
#' pkg_structure <- get_package_structure()
#' draw_package_structure(pkg_structure)
#' }
#'
#' # Example with a dummy package
tempfile("drawpkg.structure")
dummypackage <-dir.create(dummypackage)
# {fusen} steps
fill_description(pkg = dummypackage, fields = list(Title = "Dummy Package"))
suppressMessages(
dev_file <-add_flat_template(pkg = dummypackage, overwrite = TRUE, open = FALSE)
) dev_file[grepl("flat_", dev_file)]
flat_file <-
::with_project(dummypackage, {
usethis# Add an extra R file with internal function
# to list in "keep"
dir.create("R")
cat("extra_fun <- function() {1}\n", file = "R/my_extra_fun.R")
# Works with classical package
get_package_structure()
pkg_structure <-draw_package_structure(pkg_structure)
})#> ✔ Setting active project to '/tmp/RtmpxbAPyc/drawpkg.structure347ac28675dcf'
#> ── No NAMESPACE file found there: /tmp/RtmpxbAPyc/drawpkg.structure347ac28675dc
#> ── keep ────────────────────────────────────────────────────────────────────────
#>
#> - keep
#> - path
#> + keep
#> - state
#> + 🍏 active
#> - R
#> - R/my_extra_fun.R
#> + 🙈 extra_fun
#> - tests
#> - vignettes
#> ✔ Setting active project to '<no active project>'
::with_project(dummypackage, {
usethis# Works with 'fusen' package
suppressMessages(
inflate(
pkg = dummypackage, flat_file = flat_file,
vignette_name = "Get started", check = FALSE,
open_vignette = FALSE
)
)
get_package_structure()
pkg_structure <-draw_package_structure(pkg_structure)
})#> ✔ Setting active project to '/tmp/RtmpxbAPyc/drawpkg.structure347ac28675dcf'
#> ── config file for dev/flat_full.Rmd ───────────────────────────────────────────
#> ── Reading NAMESPACE file ──────────────────────────────────────────────────────
#> ── flat_full.Rmd ───────────────────────────────────────────────────────────────
#> ── keep ────────────────────────────────────────────────────────────────────────
#>
#> - flat_full.Rmd
#> - flat_title
#> + flat_full.Rmd for working package
#> - path
#> + dev/flat_full.Rmd
#> - state
#> + 🍏 active
#> - R
#> - R/my_median.R
#> + 👀 my_median
#> - R/my_other_median.R
#> + 👀 my_other_median
#> + 🙈 sub_median
#> - tests
#> + tests/testthat/test-my_median.R
#> + tests/testthat/test-my_other_median.R
#> - vignettes
#> + vignettes/get-started.Rmd
#> - keep
#> - path
#> + keep
#> - state
#> + 🍏 active
#> - R
#> - R/my_extra_fun.R
#> + 🙈 extra_fun
#> - tests
#> - vignettes
#> ✔ Setting active project to '<no active project>'
tempfile(fileext = ".R")
file_path <-cat(
"my_fun <- function() {1}",
"my_fun2 <- function() {2}",
sep = "\n",
file = file_path
)get_all_created_funs(file_path)
#> [1] "my_fun" "my_fun2"