processYaml: Process YAML Markup (generic)

Description Usage Arguments Details YAML syntax Author(s) References See Also Examples

Description

Convenience wrapper. Processes YAML markup in the sense that the complete workflow associated to a given application context is executed.

Usage

1
processYaml(from, ctx = NULL, where = parent.frame(), strict = FALSE, ...)

Arguments

from

Signature argument. Object containing YAML markup.

ctx

Signature argument. Markup proecessing context.

where

environment. Environment in which to assign the function in the src field of class ObjectReferenceYaml.S3. Only relevant in case the YAML has been provided via comments instead of an inline string as this involves some additional transformation steps.

strict

logical. TRUE: error if no YAML markup could be identified (which in turn results in field original in class ObjectReferencedYaml.S3 being empty); FALSE: no error if no YAML markup could be identified.

...

Further arguments to be passed to subsequent functions/methods.

Details

Currently, this means that all processing steps associated with the context YamlContext.ObjectReference.S3 are executed:

YAML syntax

Note that the YAML statement for specifying object references must be as follows:

object-ref: {id: {id}, where: {where}, as: {id-ref}}

Note that elements where and as are optional and that spaces are required between each syntax component. While the lack of spaces will cause a parsing error in yaml.load, additional spaces do not casue any trouble.

Example for valid YAML statements

See the official http://www.yaml.org/ for more details about YAML

Author(s)

Janko Thyson janko.thyson@rappster.de

References

http://github.com/Rappster/yamlr

See Also

processYaml-function-YamlContext.ObjectReference.S3-method, getYaml, parseYaml, buildExpressionFromYaml, updateYamlSource

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
45
46
47
48
49
50
51
52
53
54
55
56
57
## Not run: 
  
##------------------------------------------------------------------------------
## From function //
##------------------------------------------------------------------------------

## Get //  
yaml <- processYaml(
  from = function() {
    "object-ref: {id: x_1, where: .GlobalEnv, as: ref_1}"
    ref_1 * 2
  },
  ctx = YamlContext.ObjectReference.S3()
)

## Inspect //
yaml$src
## --> note that the original YAML markup has been substituted by a 
## suitable expression for this specific context (`yaml$src$x_1$get_assign`).
## The processing is now complete and the source object can be used as is
## as it is now "self contained" in the sense that it contains all information
## that are needed in order for it to do its job.

## Actual use of the source object //
x_1 <- 10
eval(yaml$src())

## Clean up //
rm(x_1)
rm(yaml)

##------------------------------------------------------------------------------
## From expression //
##------------------------------------------------------------------------------

## Get //  
yaml <- processYaml(
  from = captureExpression({
    "object-ref: {id: x_1, where: .GlobalEnv, as: ref_1}"
    ref_1 * 2
  }),
  ctx = YamlContext.ObjectReference.S3()
)

## Inspect //
yaml$src

## Actual use of the source object //
x_1 <- 10
eval(yaml$src)

## Clean up //
rm(x_1)
rm(yaml)


## End(Not run)

rappster/yamlr documentation built on May 27, 2019, 2:02 a.m.