#' @import R6
#' @export
SportDataParser <- R6::R6Class(
"SportDataParser",
public = list(
initialize = function(
config = list(), read_f = function(env){}, transform_f = function(env){},
write_f = function(env){}, read_p = list(), transform_p = list(),
write_p = list()
){
private$config_ <- config
edsrutils::r6_method_reassign(private, 'read_', read_f)
edsrutils::r6_method_reassign(private, 'transform_', transform_f)
edsrutils::r6_method_reassign(private, 'write_', write_f)
private$read_p_ <- read_p
private$transform_p_ <- transform_p
private$write_p_ <- write_p
},
cycle = function(){
env <- self$.__enclos_env__
private$read_(env)
if (length(private$in_data_) > 0){
private$transform_(env)
private$write_(env)
}else{
cat('Sleeping for', private$read_p_$sleep_secs,'seconds...\n')
Sys.sleep(private$read_p_$sleep_secs)
}
return(invisible(self))
},
read = function(){
env <- self$.__enclos_env__
private$read_(env)
return(invisible(self))
},
transform = function(){
env <- self$.__enclos_env__
private$transform_(env)
return(invisible(self))
},
write = function(){
env <- self$.__enclos_env__
private$write_(env)
return(invisible(self))
},
in_data = function(){
env <- self$.__enclos_env__
return(private$in_data_)
},
out_data = function(){
env <- self$.__enclos_env__
return(private$out_data_)
}
),
active = list(
config = function(value){
if (missing(value)) return(private$config_) else private$config_ <- value
},
read_p = function(value){
if (missing(value)) return(private$read_p_) else private$read_p_ <- value
},
transform_p = function(value){
if (missing(value)){
return(private$transform_p_)
}else{
private$transform_p_ <- value
}
},
write_p = function(value){
if (missing(value)){
return(private$write_p_)
}else{
private$write_p_ <- value
}
},
read_f = function(fn){
if (missing(fn)){
return(private$read_)
}else{
edsrutils::r6_method_reassign(private, 'read_', fn)
}
},
transform_f = function(fn){
if (missing(fn)){
return(private$transform_)
}else{
edsrutils::r6_method_reassign(private, 'transform_', fn)
}
},
write_f = function(fn){
if (missing(fn)){
return(private$write_)
}else{
edsrutils::r6_method_reassign(private, 'write_', fn)
}
}
),
private = list(
config_ = list(),
in_data_ = list(),
out_data_ = list(),
read_p_ = list(),
transform_p_ = list(),
write_p_ = list(),
read_ = function(env){},
transform_ = function(env){},
write_ = function(env){}
)
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.