.checkMainArgs <- function(mainArgs) {
inArgs <- names(mainArgs)[-1] # 1st member name of calling function
validArgs <- .getValidArgs()
invalid <- setdiff(inArgs,validArgs)
if (length(invalid) > 0) {
for (i in seq_len(length(invalid)))
warning("Unknown input argument to sitadela: ",invalid[i],
" ...Ignoring...",immediate.=TRUE)
}
}
.checkTextArgs <- function(argName,argValue,argList,multiarg=FALSE) {
if (multiarg) {
argValue <- tolower(argValue)
if (!all(argValue %in% argList))
stop("\"",argName,"\""," parameter must be one or more of ",
paste(paste("\"",argList,sep=""),collapse="\", "),"\"!")
}
else {
argSave <- argValue[1]
argValue <- tolower(argValue[1])
if (!(argValue %in% argList))
stop("\"",argName,"\""," parameter must be one of ",
paste(paste("\"",argList,sep=""),collapse="\", "),"\"!")
}
}
.checkNumArgs <- function(argName,argValue,argType,argBounds,direction) {
# First generic check so not to continue if fail
if (!is(argValue,argType))
stop("\"",argName,"\" parameter must be a(n) ",argType," value!")
# Then, proceed with a lookup table to avoid repetition (suggested by
# Marcel Ramos during package review)
lookup <- list(
both=list(
fail=function(x) x<argBounds[1] || x>argBounds[2],
cls=class,
msg=function(x) paste0("larger than or equal to ",
argBounds[1]," and smaller than or equal to ",
argBounds[2])
),
botheq=list(
fail=function(x) x<=argBounds[1] || x>=argBounds[2],
cls=class,
msg=function(x) paste0("larger than ",argBounds[1],
" and smaller than ",argBounds[2])
),
gt=list(
fail=function(x) x<=argBounds[1],
cls=class,
msg=function(x) paste0("greater than ",argBounds[1])
),
lt=list(
fail=function(x) x>=argBounds[1],
cls=class,
msg=function(x) paste0("lower than ",argBounds[1])
),
gte=list(
fail=function(x) x<argBounds[1],
cls=class,
msg=function(x) paste0("greater than or equal to ",
argBounds[1])
),
lte=list(
fail=function(x) x>argBounds[1],
cls=class,
msg=function(x) paste0("lower than or equal to ",
argBounds[1])
)
)
check <- lapply(lookup[[direction]],function(f) f(argValue))
if (check$fail || check$cls != argType)
stop("\"",argName,"\""," parameter must be a(n) ",argType,
" value ",check$msg,"!")
}
.getValidArgs <- function() {
return(c("organisms","sources","db","versioned","forceDownload","rc"))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.