Counters

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()