R/util.R

Defines functions normalizeString removeAccents getLogger genLogger getPackagePrefix getDataDir getEnv

Documented in genLogger getDataDir getEnv getLogger getPackagePrefix normalizeString removeAccents

#' getEnv
#' @author kenarab
#' @export
getEnv <- function(variable.name, package.prefix = getPackagePrefix(),  fail.on.empty = TRUE, env.file = "~/.Renviron", call.counter = 0){
 prefixed.variable.name <- paste(package.prefix, variable.name, sep ="")
 ret <- Sys.getenv(prefixed.variable.name)
 if (nchar(ret) == 0){
  if (call.counter == 0){
   readRenviron(env.file)
   ret <- getEnv(variable.name = variable.name, package.prefix = package.prefix,
                 fail.on.empty = fail.on.empty, env.file = env.file,
                 call.counter = call.counter + 1)
  }
  else{
   stop(paste("Must configure variable", prefixed.variable.name, " in", env.file))
  }

 }
 ret
}

#' getDataDir
#' @author kenarab
#' @export
getDataDir = function(){
  getEnv("data_dir")
}

#' getPackagePrefix
#' @author kenarab
#' @export
getPackagePrefix <- function(){
 "CYTAR_"
}


#' genLogger
#' @author kenarab
#' @export
genLogger <- function(r6.object){
  lgr::get_logger(class(r6.object)[[1]])
}

#' getLogger
#' @import lgr
#' @author kenarab
#' @export
getLogger <- function(r6.object){
  #TODO check if not a better solution
  ret <- r6.object$logger
  if (is.null(ret)){
    class <- class(r6.object)[[1]]
    stop(paste("Class", class, "don't seems to have a configured logger"))
  }
  else{
    ret.class <- class(ret)[[1]]
    if (ret.class == "logical"){
      stop(paste("Class", class, "needs to initialize logger: self$logger <- genLogger(self)"))
    }
  }
  ret
}

#' removeAccents
#' @author ken4rab
#' @export
removeAccents <- function(text){
  #TODO stuff '
  ret<-iconv(text, from = "UTF-8", to='ASCII//TRANSLIT')
  ret<-gsub("'|\\~","",ret)
  ret
}

#' normalizeString
#' @author ken4rab
#' @export
normalizeString <- function(text){
  removeAccents(trimws(tolower(text)))
}
rOpenStats/CYTAR documentation built on March 6, 2021, 12:28 a.m.