R/onAttach.R

Defines functions .onAttach

.onAttach <- function(libname, pkgname) {
  packageStartupMessage("Attaching peaksat version ",
                        packageDescription("peaksat")$Version, ".")
  #When adding new options here, also add them to the "names" setMethod below
  PS_OPTIONS <<- new("PS_OPTIONS")
  PS_STATS <<- valid_stats
  PS_JOB_SCHEDULERS <<- valid_job_schedulers
}

setClass("PS_OPTIONS", representation = list(
  is_valid = "logical"
  ))

setMethod("names", "PS_OPTIONS",
          function(x)
          {
            c(
              "PS_SAMTOOLS_PATH",
              "PS_MACS2_PATH",
              "PS_OUTDIR",
              "PS_JOB_IDS"
            )
          })


setMethod("$", "PS_OPTIONS",
          function(x, name)
          {
            getOption(name)
          })

setReplaceMethod("$", "PS_OPTIONS",
                 function(x, name, value)
                 {
                   value = list(value)
                   names(value) = name
                   do.call("options", value)
                   x
                 })



setMethod("show", "PS_OPTIONS",
          function(object)
          {
            message("Use the $ accessor (i.e. PS_OPTIONS$PS_MACS2_PATH) to get/set PS relevant options.")
            message("Use names(PS_OPTIONS) to view all options.")
          })
FrietzeLabUVM/peaksat documentation built on Oct. 20, 2023, 11:13 a.m.