newModule: Create new module from template

newModuleR Documentation

Create new module from template

Description

Generate a skeleton for a new SpaDES module, a template for a documentation file, a citation file, a license file, a ‘README.md’ file, and a folder that contains unit tests information. The newModuleDocumentation will not generate the module file, but will create the other files.

Usage

newModule(name, path, ..., events, envir = parent.frame())

## S4 method for signature 'character,character'
newModule(name, path, ..., events, envir = parent.frame())

## S4 method for signature 'character,missing'
newModule(name, path, ..., events, envir = parent.frame())

Arguments

name

Character string specifying the name of the new module.

path

Character string. Subdirectory in which to place the new module code file. The default is the current working directory.

...

Additional arguments. Currently, these can be either named function definitions (which will be added to the simList) or one or more of the following:

children

Required when type = "parent". A character vector specifying the names of child modules.

open

Logical. Should the new module file be opened after creation? Default TRUE.

type

Character string specifying one of "child" (default), or "parent".

unitTests

Logical. Should the new module include unit test files? Default TRUE. Unit testing relies on the testthat package.

useGitHub

Logical. Is module development happening on GitHub? Default TRUE.

events

A list of named expressions, each of which is surrounded by { }. A user can specify events here, instead of accepting the default doEvent function that comes with the module template. See example.

envir

An environment where objects being passed to newModule can be found. Default parent.frame(), which should be fine for most cases.

Details

All files will be created within a subdirectory named name within the path:

  <path>/
    |_ <name>/
    |_ R/               # contains additional module R scripts
    |_ data/            # directory for all included data
      |_ CHECKSUMS.txt  # contains checksums for data files
    |_ tests/           # contains unit tests for module code
    |_ citation.bib     # bibtex citation for the module
    |_ LICENSE          # describes module's legal usage
    |_ README.md        # provide overview of key aspects
    |_ <name>.R         # module code file (incl. metadata)
    |_ <name>.Rmd       # documentation, usage info, etc.

Value

NULL (invisibly). The new module file is created at ‘path/name.R’, as well as ancillary files for documentation, citation, ‘LICENSE’, ‘README’, and ‘tests’ directory.

Note

On Windows there is currently a bug in RStudio that prevents the editor from opening when file.edit is called. Similarly, in RStudio on macOS, there is an issue opening files where they are opened in an overlaid window rather than a new tab. file.edit does work if the user types it at the command prompt. A message with the correct lines to copy and paste is provided.

Author(s)

Alex Chubaty and Eliot McIntire

See Also

Other module creation helpers: newModuleCode(), newModuleDocumentation(), newModuleTests()

Examples


  tmpdir <- tempdir2("exampleNewModule")
  ## create a "myModule" module in the "modules" subdirectory.
  newModule("myModule", tmpdir)

  ## create a new parent module in the "modules" subdirectory.
  newModule("myParentModule", tmpdir, type = "parent", children = c("child1", "child2"))
  unlink(tmpdir, recursive = TRUE)



SpaDES.core documentation built on June 22, 2024, 10:32 a.m.