Simplify API

This commit is contained in:
Joe Cheng
2012-06-29 09:34:15 -07:00
parent f3fa9883aa
commit c3268d0362
4 changed files with 43 additions and 11 deletions

View File

@@ -55,6 +55,15 @@ Map <- setRefClass(
)
)
`[.Map` <- function(map, name) {
map$get(name)
}
`[<-.Map` <- function(map, name, value) {
map$set(name, value)
return(map)
}
as.list.Map <- function(map) {
sapply(map$keys(),
map$get,
@@ -207,6 +216,24 @@ Values <- setRefClass(
)
)
`[.Values` <- function(values, name) {
values$get(name)
}
`[<-.Values` <- function(values, name, value) {
values$set(name, value)
return(values)
}
make.values.accessor <- function(values) {
acc <- list(impl=values)
class(acc) <- 'ValuesAccessor'
acc
}
`$.ValuesAccessor` <- function(acc, name) {
acc[['impl']]$get(name)
}
Observable <- setRefClass(
'Observable',
fields = c(
@@ -259,6 +286,10 @@ Observable <- setRefClass(
)
)
observable <- function(func) {
Observable$new(func)
}
Observer <- setRefClass(
'Observer',
fields = list(

View File

@@ -157,6 +157,7 @@ start.app <- function(app, www.root, sys.www.root=NULL, port=8101L) {
get.input <- function(name) {
shinyapp$session$get(name)
}
input <- make.values.accessor(shinyapp$session)
if (is.function(app))
app()