Parse and extract a module's version

moduleVersion(module, path, sim, envir = NULL)

# S4 method for character,character,missing
moduleVersion(module, path, envir)

# S4 method for character,missing,missing
moduleVersion(module, envir)

# S4 method for character,missing,simList
moduleVersion(module, sim, envir)

Arguments

module

Character string. Your module's name.

path

Character string specifying the file path to modules directory. Default is to use the spades.modulePath option.

sim

A simList simulation object, generally produced by simInit.

envir

Optional environment in which to store parsed code. This may be useful if the same file is being parsed multiple times. This function will check in that environment for the parsed file before parsing again. If the envir is transient, then this will have no effect.

Value

numeric_version indicating the module's version.

See also

Author

Alex Chubaty

Examples

# using filepath
path <- getSampleModules(tempdir())
moduleVersion("caribouMovement", path)
#> [1] ‘1.6.1’

# using simList
options("spades.useRequire" = FALSE)
if (require("SpaDES.tools", quietly = TRUE)) {
   mySim <- simInit(
      times = list(start = 2000.0, end = 2002.0, timeunit = "year"),
      params = list(
        .globals = list(stackName = "landscape", burnStats = "nPixelsBurned")
      ),
      modules = list("caribouMovement"),
      paths = list(modulePath = path)
   )
   moduleVersion("caribouMovement", sim = mySim)
}
#> Setting:
#>   options(
#>     spades.modulePath = '/tmp/RtmpNobduY/sampleModules'
#>   )
#> Paths set to:
#>   options(
#>     rasterTmpDir = '/tmp/RtmpNobduY/SpaDES/scratch/raster'
#>     reproducible.cachePath = '/tmp/RtmpNobduY/reproducible/cache'
#>     spades.inputPath = '/tmp/RtmpNobduY/SpaDES/inputs'
#>     spades.outputPath = '/tmp/RtmpNobduY/SpaDES/outputs'
#>     spades.modulePath = '/tmp/RtmpNobduY/sampleModules'
#>     spades.scratchPath = '/tmp/RtmpNobduY/SpaDES/scratch'
#>   )
#>   terra::terraOptions(tempdir = '/tmp/RtmpNobduY/SpaDES/scratch/terra'
#> Apr16 20:30:47 simInit Using setDTthreads(1). To change: 'options(spades.DTthreads = X)'.
#> Apr16 20:30:47 simInit caribouMovement: module code: landscape, caribou are declared in metadata inputObjects, but no default(s) are provided in .inputObjects
#> Apr16 20:30:47 simInit caribouMovement: module code: landscape is declared in metadata inputObjects, but is not used in the module
#> Apr16 20:30:47 simInit caribouMovement: inputObjects: Par$stackName is used from sim inside Init, but is not declared in metadata inputObjects
#> Apr16 20:30:47 simInit caribouMovement: inputObjects: Par$stackName is used from sim inside Move, but is not declared in metadata inputObjects
#> Apr16 20:30:47 simInit The following .globals were used:
#> Apr16 20:30:47 simInit Key: <global, module>
#> Apr16 20:30:47 simInit             module    global
#> Apr16 20:30:47 simInit             <char>    <char>
#> Apr16 20:30:47 simInit 1: caribouMovement stackName
#> Apr16 20:30:47 simInit Global parameter(s) not used in any module: burnStats.
#> Elpsed time for simInit: 0.1289608 secs
#> [1] ‘1.6.1’