existsAnywhereOption: Check Existence of an Anywhere Option (generic)

Description Usage Arguments Path-like identifiers Author(s) References See Also Examples

Description

Checks if an option exists anywhere inside of an option container based on a path-like id with the last ID component being the actual object name that the function looks for. See getOptionContainer.

Usage

1
2
3
existsAnywhereOption(id, where = tryCatch(devtools::as.package(".")$package,
  error = function(cond) {     stop("Invalid default value for `where`") }),
  strict = c(0, 1, 2), ...)

Arguments

id

Signature argument. Object containing path-like name/ID information.

where

Signature argument. Object containing information about the location of the option container that is to be used. Typically, this either corresponds to the name/ID of a package/package project or an instance of a custom class for which suitable methods in the context of managing options are defined (see other methods of this package that have signature arguments id or where).

strict

logical. Controls what happens when id points to a non-existing option object:

  • 0: ignore and return FALSE to signal that the assignment process was not successful or fail_value depending on the value of return_status

  • 1: ignore and with warning and return FALSE

  • 2: ignore and with error

...

Further arguments to be passed to subsequent functions/methods.

Path-like identifiers

Values for id are expected to be of structure a/b/c/.../z, i.e. path-like identifiers using a slash as separator. The identifier is transformed to a$b$c$...$z and then in turn to a valid get or assign expression (i.e. something similar to getOptionContainer(...)$a$b$c$...$z and getOptionContainer(...)$a$b$c$...$z <- value). Of course, "atomic" paths (e.g. only a) are also valid.

Author(s)

Janko Thyson janko.thyson@gmail.com

References

http://github.com/Rappster/optionr

See Also

existsAnywhereOption-char-char-method, setAnywhereOption, getAnywhereOption, rmAnywhereOption

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
## Not run: 

##------------------------------------------------------------------------------
## Basics //
##------------------------------------------------------------------------------

setAnywhereOption(id = "test", value = TRUE)
existsAnywhereOption(id = "test")

setAnywhereOption(id = "a/b/c", value = 10)
existsAnywhereOption(id = "a")
existsAnywhereOption(id = "a/b")
existsAnywhereOption(id = "a/b/c")
existsAnywhereOption(id = "a/b/c/d")

existsAnywhereOption(id = "c")
existsAnywhereOption(id = "c/d/e")
  
##------------------------------------------------------------------------------
## Strictness levels //
##------------------------------------------------------------------------------

## Empty ID //
existsAnywhereOption(id = character())
try(existsAnywhereOption(id = character(), strict = 1))
try(existsAnywhereOption(id = character(), strict = 2))

## Not-existing //  
existsAnywhereOption(id = "c/d/e")
try(existsAnywhereOption(id = "c/d/e", strict = 1))
try(existsAnywhereOption(id = "c/d/e", strict = 2))

##------------------------------------------------------------------------------
## Explicit `where` //
##------------------------------------------------------------------------------

where <- new.env()
setAnywhereOption(id = "a/b/c", value = 10, where = where)
existsAnywhereOption(id = "a/b/c", where = where)
existsAnywhereOption(id = "a/b/c/d", where = where)
existsAnywhereOption(id = "c/d/e", where = where)


## End(Not run)

rappster/optionr documentation built on May 26, 2019, 11:23 p.m.