Title: Parametrized Active Bindings
Version: 0.1.2
Description: Provides a simple interface for creating active bindings where the bound function accepts additional arguments.
Suggests: testthat
Date: 2024-11-21
BugReports: https://github.com/krlmlr/bindr/issues
URL: https://github.com/krlmlr/bindr, https://krlmlr.github.io/bindr/
RoxygenNote: 7.3.2.9000
License: MIT + file LICENSE
Encoding: UTF-8
NeedsCompilation: no
Packaged: 2024-11-21 20:34:52 UTC; kirill
Author: Kirill Müller ORCID iD [aut, cre], RStudio [cph, fnd]
Maintainer: Kirill Müller <kirill@cynkra.com>
Repository: CRAN
Date/Publication: 2024-11-21 21:30:14 UTC

bindr: Parametrized Active Bindings

Description

Provides a simple interface for creating active bindings where the bound function accepts additional arguments.

Details

See create_env() for creating an environment populated with active bindings, and populate_env() for populating an existing environment.

Author(s)

Maintainer: Kirill Müller kirill@cynkra.com (ORCID)

Other contributors:

See Also

Useful links:


Create or populate an environment with parametrized active bindings

Description

Leverages makeActiveBinding() by allowing parametrized functions that take the name of the binding and an arbitrary number of additional arguments.

Usage

create_env(names, fun, ..., .envir = parent.frame(), .enclos = parent.frame())

populate_env(env, names, fun, ..., .envir = parent.frame())

Arguments

names

A name, or a list of names, or a character vector; in the latter case the names are mangled if they are not representable in the native encoding

fun

A function with at least one argument, which will be called to compute the value of a binding. The function will be called with the binding name as first argument (unnamed), and ... as additional arguments

...

Additional arguments to fun

.envir

The environment in which fun will be executed, important if fun calls other functions that are not globally visible

.enclos

The enclosing environment (parent.env) for the newly created environment

env

An environment

Examples

env <- create_env(letters, paste0, "-lowercase")
env$a
env$c
env$Z
populate_env(env, LETTERS, paste0, "-uppercase")
env$a
env$Z