Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions R/utils.R
Original file line number Diff line number Diff line change
Expand Up @@ -674,3 +674,52 @@ screen_undesired <- function(fn) {
}
rslt
}

#' chunk_details_description
#'
#' Get the description and details from a chunk from its /man*.Rd page.
#' All non-batch chunk info can be retrieved with the following code:
#' chunk_names <- find_chunks('^module_[a-zA-Z\\.]*_L.*$')
#' bind_rows(lapply(chunk_names$name, chunk_details_description))
#'
#' @param chunkname The name of the chunk to extract details from
#' @return Tibble with chunk name, details, and description
#' @author HN & RLH October 2022
chunk_details_description <- function(chunkname) {
assertthat::assert_that(is.character(chunkname))

# Get .Rd filename
chunkname_Rd <- list.files(path = "man", pattern = chunkname, full.names = TRUE, recursive = TRUE)

# There should only be one .Rd file per chunk
if(length(chunkname_Rd) != 1){
stop(paste0("Numbers of .Rd files for ", chunkname, " is not equal to 1"))
}

# Read in documentation
lines <- readLines(chunkname_Rd)

# Search for description and details in documentation
for (l in 1:length(lines)) {
# If we find description label, read it in until closing bracket
if (lines[l] == "\\description{") {
ldes <- l + 1
while (lines[ldes] != "}"){
ldes <- ldes + 1
}
des <- paste(lines[(l+1):(ldes-1)], collapse = " ")
}
# If we find details label, read it in until closing bracket
else if (lines[l] == "\\details{"){
ldet = l
ldet <- l + 1
while (lines[ldet] != "}"){
ldet <- ldet + 1
}
det <- paste(lines[(l+1):(ldet-1)], collapse = " ")
}
l <- l + 1
}
# Return the description and details string if they exist, empty string if not
return(tibble(name = chunkname, description = get0("des", mode = "character"), details = get0("det", mode = "character")))
}
23 changes: 23 additions & 0 deletions man/chunk_details_description.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 26 additions & 0 deletions man/screen_undesired.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.