Skip to content

Uitdaging met specifieke recept parameters #19

@ernst-paul

Description

@ernst-paul

In het kort Dessert

# (1) function users call 
dessert <- function (input, p1, p2, ...) {
  # (2) initiate the dessert object 
  dessert <- Dessert$new(input, p1, ...)

  # (7) apply render method
  dessert$render(p2, ...)

  return(dessert)
}

Dessert <- R6::R6Class(
  name = "Dessert",
  # (3) run initiate method
  initialize = function(input, p, ...) {
    # (4) call class function 
    do.call(dessert.class, ...)
  },
  # (8) run render method
  render = function(p, ...) {
    # (9) store input and markdown parameters in a rdata object
    save(recipe.rdata) 
    quarto::quarto_render(self, ...)
  }
)
# (5) say data.frame class was called
dessert.data.frame <- function(self, ...) {
  # (6) now additional parameters given via an ellipsis
  extra_parameters <- list(...)
  return(self)
}

Uitdaging

Alle specifieke recipe parameters bij stap 6, worden middels een ellipsis doorgegeven. Het is lastig om een validity check te doen op de parameters.

Nu is het mogelijk om parameters in de yml van het qmd te specificeren.

title: "Example Recipe"
param:
  optional_parameter: 123,
  required_parameter

Die worden bij het renderen als een lijst meegegeven:

quarto::quarto_render(self, params = list(optional_parameter = 456, required_parameter = FALSE))

Alleen het markdown bestand, wat wij meegeven aan de gebruiken door middel van: copy.file(markdown), heeft de ingestelde parameter waardes niet. Dus bij het heropenen van het qmd bestand zal de gebruiker zelf die parameters weer moeten invullen.

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions