AMR/data-raw/reproduction_of_poorman.R

39 lines
1.5 KiB
R

# get complete filenames of all R files in the GitHub repository of nathaneastwood/poorman
commit <- "7d76d77f8f7bc663bf30fb5a161abb49801afa17"
files <- xml2::read_html(paste0("https://github.com/nathaneastwood/poorman/tree/", commit, "/R")) %>%
rvest::html_nodes("table") %>%
rvest::html_table()
files <- files[[1]][,"Name"]
# remove files with only pkg specific code
files <- files[!files %in% c("zzz.R", "init.R")]
files <- paste0("https://raw.githubusercontent.com/nathaneastwood/poorman/", commit, "/R/",
files[grepl("[.]R$", files)])
# add our prepend file, containing info about the source of the data
files <- c("data-raw/poorman_prepend.R", files)
# read all contents to a character vector
contents <- character(0)
sapply(files, function(file) {
contents <<- c(contents, readLines(file))
invisible()
})
# remove lines starting with "#'" and NULL and write to file
contents <- contents[!grepl("^(#'|NULL|\"_PACKAGE)", contents)]
# now make it independent on UseMethod, since we will not export these functions
contents <- gsub('UseMethod[(]"(.*?)"[)]',
'if ("grouped_data" %in% class(.data)) {||| \\1.grouped_data(.data, ...)||| } else {||| \\1.default(.data, ...)||| }',
paste(contents, collapse = "|||"),
perl = TRUE) %>%
# add commit to intro part
gsub("{commit}", commit, ., fixed = TRUE) %>%
strsplit(split = "|||", fixed = TRUE) %>%
unlist()
writeLines(contents, "R/aa_helper_functions_dplyr.R")