R: Create a new options manager.

options_manager {settings} | R Documentation

## Create a new options manager.

### Description

Set up a set of options with default values and retrieve a manager for it.

### Usage

    options_manager(..., .allowed)

### Arguments

`...` | Comma separated `[name]=[value]` pairs. These will be the names and default values for your options manager.
`.allowed` | list of named functions that check an option (see 'checking options')

### Value

A `function` that can be used as a custom options manager. It takes as arguments a comma separated list of option names (`character`) to retrieve options or `[name]=[value]` pairs to set options.

### Details

The function `options_manager` creates an option management function. The returned function can be uset to set, get, or reset options. The only restriction of the package is that the following words cannot be used as names for options:

`.__reset` `.__defaults`

For more details and extensive examples see the vignette by copy-pasting this command:

`vignette("settings", package = "settings")`

### Checking options

Option values can be checked automatically by supplying the options manager with a named list of functions (`.allowed`) that take an option value and throw an error if it is out-of-range. The functions `inlist` and `inrange` are convenience functions that create such checking functions for you.

### See Also

Reset to default values: `reset`.

Retrieve default values: `defaults`

Create a local, possibly altered copy: `clone_and_merge`

### Examples

    # create an options register
    my_options <- options_manager(foo=1,bar=2,baz='bob')

    ### Retrieving options
    my_options() # retrieve the full options list.
    my_options('baz')
    my_options('foo')

    # When multiple options are retrieved, the result is a list
    my_options('foo','baz')

    ### Setting global options
    my_options(foo=3,baz='pete')
    my_options()
    ### Reset options to default.
    reset(my_options)
    my_options()

    ### Limit the possible values for an option.
    my_options <- options_manager( fu="bar",.allowed = list(fu=inlist("foo","bar")) )

[Package settings version 0.2.4 Index]