The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Draw a tree of your package files and functions

library(fusen)

Get a tree of the package structure to help developers

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
dummypackage <- tempfile("drawpkg.structure")
dir.create(dummypackage)

# {fusen} steps
fill_description(pkg = dummypackage, fields = list(Title = "Dummy Package"))
dev_file <- suppressMessages(
  add_flat_template(pkg = dummypackage, overwrite = TRUE, open = FALSE)
)
flat_file <- dev_file[grepl("flat_", dev_file)]

usethis::with_project(dummypackage, {
  # 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
  pkg_structure <- get_package_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>'

usethis::with_project(dummypackage, {
  # Works with 'fusen' package
  suppressMessages(
    inflate(
      pkg = dummypackage, flat_file = flat_file,
      vignette_name = "Get started", check = FALSE,
      open_vignette = FALSE
    )
  )

  pkg_structure <- get_package_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>'

Get the list of functions from a R file

file_path <- tempfile(fileext = ".R")
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"

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.