Nothing
## ----echo=FALSE---------------------------------------------------------------
knitr::opts_chunk$set(
comment = "#>",
collapse = TRUE,
warning = FALSE,
message = FALSE
)
## -----------------------------------------------------------------------------
library(R6)
MyBaseProvider <- R6::R6Class(
"MyBaseProvider",
public = list(
random_element = function(x) {
if (length(x) == 0) {
return("")
}
if (inherits(x, "character")) if (!any(nzchar(x))) {
return("")
}
x[sample.int(n = length(x), size = 1)]
},
random_int = function(min = 0, max = 9999, size = 1) {
stopifnot(max >= min)
num <- max - min + 1
sample.int(n = num, size = size, replace = TRUE) + (min - 1)
}
)
)
## -----------------------------------------------------------------------------
FooBar <- R6::R6Class(
"FooBar",
inherit = charlatan::BaseProvider,
public = list(
integer = function(n = 1, min = 1, max = 1000) {
super$random_int(min, max, n)
}
)
)
## -----------------------------------------------------------------------------
x <- FooBar$new()
x
x$integer()
## -----------------------------------------------------------------------------
library(charlatan)
file <- system.file("examples", "address-provider-en_US.R", package = "charlatan")
source(file)
MyAddressProvider <- R6::R6Class(
inherit = MyBaseProvider,
"MyAddressProvider",
lock_objects = FALSE,
public = list(
locale = NULL,
city_suffixes = NULL,
initialize = function() {
self$locale <- "en_us"
self$city_suffixes <-
eval(parse(text = paste0("city_suffixes_", self$locale)))
},
city_suffix = function() {
super$random_element(self$city_suffixes)
}
)
)
## -----------------------------------------------------------------------------
x <- MyAddressProvider$new()
x
x$city_suffix()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.