Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

leanify_r6

Move all methods of an R6 Class to an environment


Description

leanify_r6 moves the content of an R6::R6Class's functions to an environment, usually the package's namespace, to save space during serialization of R6 objects. leanify_package move all methods of all R6 Classes to an environment.

The function in the class (i.e. the object generator) is replaced by a stump function that does nothing except calling the original function that now resides somewhere else.

It is possible to call this function after the definition of an R6::R6 class inside a package, but it is preferred to use leanify_package() to just leanify all R6::R6 classes inside a package.

Usage

leanify_r6(cls, env = cls$parent_env)

leanify_package(pkg_env = parent.frame(), skip_if = function(x) FALSE)

Arguments

cls

(R6::R6Class)
Class generator to modify.

env

(environment)
The target environment where the function should be stored. This should be either cls$parent_env (default) or one of its parent environments, otherwise the stump function will not find the moved (original code) function.

pkg_env

:: environment
The namespace from which to leanify all R6 classes. Does not have to be a package namespace, but this is the intended usecase.

skip_if

:: function
Function with one argument: Is called for each individual R6::R6Class. If it returns TRUE, the class is skipped. Default function evaluating to FALSE always (i.e. skipping no classes).

Value

NULL.


mlr3misc

Helper Functions for 'mlr3'

v0.10.0
LGPL-3
Authors
Michel Lang [cre, aut] (<https://orcid.org/0000-0001-9754-0393>), Patrick Schratz [aut] (<https://orcid.org/0000-0003-0748-6624>)
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.