unifir_prop {unifir} | R Documentation |
The class for unifir prop objects
Description
This function is exported so that developers can add their own props in new packages, without needing to re-implement the prop and script classes themselves. It is not expected that end users will need this function.
Usage
unifir_prop(prop_file, method_name, method_type, parameters, build, using)
Arguments
prop_file |
The system location for the C# template file |
method_name |
The name of the method, in C# code |
method_type |
The type of the method (usually matches its file name); scripts can have multiple versions of the same method, each with different method_name values, all sharing the same method_type. |
parameters |
Method-specific parameters, typically used in the build stage. |
build |
A function that takes three arguments, |
using |
A character vector of imports required for the method. |
Details
This function will check each argument for correctness. To be specific, it performs the following checks:
-
prop_file
must be either awaiver
object (created by waiver) or a file path of length 1 pointing to a file that exists -
method_name
will be automatically generated if not existing. If it exists, it must be a character vector of length 1 -
method_type
must be a character vector of length 1 -
build
must be a function with the argumentsscript
,prop
, anddebug
(in that order, with no other arguments). Any other arguments needed by your build function should be passed as prop parameters. -
using
must be a character vector (of any length, including 0)
If your prop needs data or arguments beyond these, store them as a
list in parameters
, which is entirely unchecked.
Value
An R6 object of class unifir_prop
The debug argument
When Sys.getenv(unifir_debugmode)
returns anything other than ""
,
action runs in "debug mode". In addition to setting exec
and write
to FALSE
in action, this mode also attempts to disable any prop
functionality that would make changes to the user's disk – no files
or directories should be altered. In this mode, action will pass
debug = TRUE
as an argument to your prop; your prop should respect
the debug mode and avoid making any changes.
Examples
unifir_prop(
prop_file = waiver(), # Must be a file that exists or waiver()
method_name = NULL, # Auto-generated if NULL or NA
method_type = "ExampleProp", # Length-1 character vector
parameters = list(), # Not validated, usually a list
build = function(script, prop, debug) {},
using = character(0)
)