R/helpers.R

#' @export
saf_off <- function(x){

  saf <- getOption('stringsAsFactors')
  options('stringsAsFactors' = FALSE)
  y <- eval(x)
  options('stringsAsFactors' = saf)
  return(y)

}

#' @export
override_default_list <- function(specified_list, default_list){
  out <- default_list
  for (nm in names(specified_list)){
    if (!(nm %in% names(nm))){
      warning(
        stringr::str_c(nm, ' not in names of default list. Ignoring item...')
      )
      next
    }

    if (is.list(out[[nm]])){
      out[[nm]] <- override_default(specified_list[[nm]], out[[nm]])
    }else{
      out[[nm]] <- specified_list[[nm]]
    }
  }
  return(out)
}

#' @export
r6_method_reassign <- function(env, method_name, fn){
  unlockBinding(method_name, env)
  assign(method_name, fn, envir = env)
  lockBinding(method_name, env)
}
EntirelyDS/edsrutils documentation built on May 6, 2019, 3:48 p.m.