The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Title: An Event-Based Mechanism for 'Shiny'
Version: 0.0.1
Description: An event-Based framework for building 'Shiny' apps. Instead of relying on standard 'Shiny' reactive objects, this package allow to relying on a lighter set of triggers, so that reactive contexts can be invalidated with more control.
License: MIT + file LICENSE
Encoding: UTF-8
LazyData: true
RoxygenNote: 7.1.1
Imports: shiny, attempt
Suggests: knitr, rmarkdown, testthat (≥ 3.0.0)
VignetteBuilder: knitr
Config/testthat/edition: 3
NeedsCompilation: no
Packaged: 2021-02-24 10:33:13 UTC; colin
Author: Colin Fay [aut, cre]
Maintainer: Colin Fay <contact@colinfay.me>
Repository: CRAN
Date/Publication: 2021-02-25 10:30:02 UTC

Handle logs

Description

Get / Clear the logs of all the time the 'trigger()' functions are launched.

Usage

get_gargoyle_logs()

clear_gargoyle_logs()

Value

A data.frame of the logs.

Examples

if (interactive()){
  get_gargoyle_logs()
  clear_gargoyle_logs()
}

Initiate, triger, event

Description

Initiate, triger, event

Usage

init(..., session = getDefaultReactiveDomain())

trigger(..., session = getDefaultReactiveDomain())

watch(name, session = getDefaultReactiveDomain())

Arguments

session

The shiny session object

name, ...

The name(s) of the events

Value

The 'session' object invisibly. These functions are mainly used for side-effects.

Examples

if (interactive()){
  library(shiny)
  library(gargoyle)
  options("gargoyle.talkative" = TRUE)
  ui <- function(request){
    tagList(
      h4('Go'),
      actionButton("y", "y"),
      h4('Output of z$v'),
      tableOutput("evt")
    )
  }

  server <- function(input, output, session){

    # Initiating the flags
    init( "plop", "pouet", "poum")

    # Creating a new env to store values, instead of
    # a reactive structure
    z <- new.env()

    observeEvent( input$y , {
      z$v <- mtcars
      # Triggering the flag
      trigger("airquality")
    })

    on("airquality", {
      # Triggering the flag
      z$v <- airquality
      trigger("iris")
    })

    on("iris", {
      # Triggering the flag
      z$v <- iris
      trigger("renderiris")
    })

    output$evt <- renderTable({
      # This part will only render when the renderiris
      # flag is triggered
      watch("renderiris")
      head(z$v)
    })

  }

  shinyApp(ui, server)

}

React on an event

Description

React on an event

Usage

on(name, expr, session = getDefaultReactiveDomain())

Arguments

name

the name of the event to react to

expr

the expression to run when the event is triggered.

session

The shiny session object

Value

An observeEvent object. This object will rarely be used, 'on' is mainly called for side-effects.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.