R/criarProva.R

Defines functions criarProva

Documented in criarProva

#' criarProva
#'
#' @param pasta caminho da pasta onde estao os arquivos
#'
#' @importFrom magrittr %>%
#' @export
criarProva <- function(pasta, arq_final = 'prova.pdf') {
  arquivos <- dir(pasta, full.names = TRUE)
  arquivos <- purrr::transpose(lapply(arquivos, function(arq) {
    r <- readr::read_file(arq)
    qa <- stringr::str_split(r, '% ---')[[1]]
    alts <- gsub('\\begin{itemize}', '', qa[2], fixed = TRUE)
    alts <- gsub('\\end{itemize}', '', alts, fixed = TRUE)
    alts <- stringr::str_trim(alts)
    alts <- stringr::str_split(alts, '\\\\item ')[[1]][-1]
    alts <- stringr::str_trim(alts)
    list(qa[1], alts)
  }))
  questoes <- tibble::tibble(
    questao = unlist(arquivos[[1]]),
    alternativas = arquivos[[2]]
  )
  questoes <- questoes %>%
    dplyr::sample_n(nrow(.)) %>%
    dplyr::mutate(alternativas = purrr::map(alternativas, sample, 4))
  arq_base <- system.file('criarProva.Rmd', package = 'criarProva')
  rmarkdown::render(arq_base,
                    output_file = arq_final,
                    output_dir = './',
                    params = list(questoes = questoes),
                    quiet = TRUE)
}
jtrecenti/criarProva documentation built on May 20, 2019, 3:17 a.m.