R/parameters.R

setClass("Parameters", slots = list(values = "list"))

Parameters <- function(dict){
    values = lapply(dict, function(p){p$default})
    new("Parameters", values = values)
}

setMethod("show", "Parameters",
          function(object){show(object@values)})

merge_params <- function(params, params_new){
    not_in_parameters = setdiff(names(params_new), names(params@values))

    if (length(not_in_parameters) > 0) {
        stop(stringr::str_interp("Parameters ${not_in_parameters} not found in manifest."))
    }

    Map(function(name,val){
        if(name %in% names(params_new)){
            params_new[[name]]
        } else {
            val
        }},
        names(params@values),
        params@values
        )
}
FASTGenomics/fastgenomicsR documentation built on June 26, 2019, 12:38 p.m.