R/utils.R

#' Pauses current session
#' 
#' @export
pause <- function() {
  invisible()
}

#' Resumes following a pause
#' 
#' @export
resume <- function() {
  invisible()
}

#' Exits iMatchIt
#' 
#' @export
done <- function() {
  removeTaskCallback("listener")
  pretty_out("Goodbye!", skip_after=TRUE)
  invisible()
}

## UTILITIES

#' @importFrom stringr str_c
pretty_out <- function(..., skip_after=FALSE) {
  wrapped <- strwrap(str_c(..., sep = " "), width = getOption("width") - 2)
  mes <- str_c("| ", wrapped, collapse = "\n")
  if(skip_after) mes <- paste0(mes, "\n")
  message(paste0("\n", mes))
}

yes <- function() {
  resp <- select.list(c("Yes", "No"), graphics=FALSE)
  identical(resp, "Yes")
}

print_diag <- function(node, e) {
  # Print methods we rule out as a result of this choice
  if(length(node[["ruleout"]] > 0))
    pretty_out("Ruled out:", paste(node[["ruleout"]], collapse=", "))
  else
    pretty_out("No methods ruled out!")
  # Rule out methods
  for(m in node[["ruleout"]]) e$methods_list[[m]] <- NULL
  # Print methods remaining
  if(length(e$methods_list) > 0)
    pretty_out("Remaining:", paste(sapply(e$methods_list, `[[`, "name"),
                                   collapse=", "))
  else
    pretty_out("No more methods remaining!")
}

separate <- function() {
  wid = getOption("width") - 2
  message("\n")
  message(rep("#", wid))
  message(rep("#", wid))
}

# status <- function(e) {
#   if(exists("paused", envir=e, inherits=FALSE) && e$paused) {
#     pretty_out("I'm paused and would normally be silent...", skip_after=TRUE)
#   } else {
#     pretty_out("I'm alive and well!", skip_after=TRUE)
#   }
#   invisible()
# }
ncarchedi/iMatchIt documentation built on May 23, 2019, 1:05 p.m.