## ------------------------------------------------
## Method `StorageClass$new`
## ------------------------------------------------
## Only run examples in interactive R sessions
if (interactive()) {
# beginning of application
library(shiny)
library(shinystate)
# Create a StorageClass object with default settings
storage <- StorageClass$new()
# Use a pre-specified directory to store state files
# For purposes of this example, use a temporary directory
storage <- StorageClass$new(local_storage_dir = tempdir())
# use a custom pins board to store bookmarkable state data
# For purposes of this example, use a temporary directory
library(pins)
board <- board_temp()
storage <- StorageClass$new(board_sessions = board)
}
## ------------------------------------------------
## Method `StorageClass$get_sessions`
## ------------------------------------------------
## Only run examples in interactive R sessions
if (interactive()) {
library(shiny)
library(shinystate)
# Create a StorageClass object with default settings
storage <- StorageClass$new()
# obtain session data
storage$get_sessions()
}
## ------------------------------------------------
## Method `StorageClass$restore`
## ------------------------------------------------
## Only run examples in interactive R sessions
if (interactive()) {
library(shinystate)
# Create a StorageClass object with default settings
storage <- StorageClass$new()
# obtain session data
session_df <- storage$get_sessions()
# restore state
# typically run inside a shiny observe or observeEvent call
storage$restore(tail(session_df$url, n = 1))
}
## ------------------------------------------------
## Method `StorageClass$snapshot`
## ------------------------------------------------
## Only run examples in interactive R sessions
if (interactive()) {
library(shinystate)
# Create a StorageClass object with default settings
storage <- StorageClass$new()
# save state with timestamp as metadata
# typically run inside a shiny observe or observeEvent call
storage$snapshot(session_metadata = list(time = Sys.time()))
}
## ------------------------------------------------
## Method `StorageClass$delete`
## ------------------------------------------------
## Only run examples in interactive R sessions
if (interactive()) {
library(shinystate)
# Create a StorageClass object with default settings
storage <- StorageClass$new()
# obtain session data
session_df <- storage$get_sessions()
# delete a session
# typically run inside a shiny observe or observeEvent call
storage$delete(session_df$url[1])
}
## ------------------------------------------------
## Method `StorageClass$register_metadata`
## ------------------------------------------------
## Only run examples in interactive R sessions
if (interactive()) {
library(shinystate)
# Create a StorageClass object with default settings
storage <- StorageClass$new()
# application server code
server <- function(input, output, session) {
storage$register_metadata()
}
}
Run the code above in your browser using DataLab