Counters

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  eval = interactive() || identical(Sys.getenv("TRAVIS"), "true")
)

whereami stores in counters when a whereami call was invoked in a script during a session. This information can be used in control reactivity in shiny app development and testing.

Below shows the basics of accessing and controlling counters.

library(whereami)
txt_1 <- "
whereami::cat_where(whereami::whereami(tag = 'tag1'))
"

txt_2 <- "whereami::cat_where(whereami::whereami(tag = 'tag2'))"

tf_1 <- tempfile(fileext = '.R')
tf_2 <- tempfile(fileext = '.R')

cat(txt_1,file = tf_1)
cat(txt_2,file = tf_2)
source(tf_1)
source(tf_2)

Query Counter State

# All counters
counter_state()

# A single counter
counter_state(tag = 'tag1')

Accessing Counters

# Counter names
counter_names()

# Counter tags
counter_tags()

Retrieve Counters

counters <- counter_get()

counters

Manipulating Counters

Using counter_reset and counter_state in a loop

for( i in 1:10 ){

  source(tf_1)
  source(tf_2)

  if( counter_state(tag = 'tag1') > 5 )
    counter_reset(tag = 'tag2')
}

Plot Method

plot(counter_get())

json logs

A json log of the counter is written to file.path(tempdir(),'whereami.json') by default. The path can be set using set_whereami_log().

jsonlite::read_json(
file.path(tempdir(),'whereami.json'),
simplifyVector = TRUE)

Clear all counters

counter_reset()

Verify that there are no active counters.

counter_state()


Try the whereami package in your browser

Any scripts or data that you put into this service are public.

whereami documentation built on Nov. 7, 2019, 5:08 p.m.