Skip to content

Commit 0e8ed7d

Browse files
committed
Refactor Progress to have private members
1 parent 5af4743 commit 0e8ed7d

File tree

1 file changed

+33
-25
lines changed

1 file changed

+33
-25
lines changed

R/progress.R

Lines changed: 33 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -69,63 +69,71 @@
6969
#' @export
7070
Progress <- R6Class(
7171
'Progress',
72-
portable = FALSE,
72+
portable = TRUE,
7373
public = list(
74-
.session = 'environment',
75-
.id = 'character',
76-
.min = 'numeric',
77-
.max = 'numeric',
78-
.value = 'ANY',
79-
.closed = 'logical',
8074

8175
initialize = function(session = getDefaultReactiveDomain(), min = 0, max = 1) {
8276
# A hacky check to make sure the session object is indeed a session object.
8377
if (is.null(session$onFlush)) stop("'session' is not a session object.")
8478

85-
.closed <<- FALSE
86-
.session <<- session
87-
.id <<- paste(as.character(as.raw(runif(8, min=0, max=255))), collapse='')
88-
.min <<- min
89-
.max <<- max
90-
.value <<- NULL
79+
private$session <- session
80+
private$id <- paste(as.character(as.raw(runif(8, min=0, max=255))), collapse='')
81+
private$min <- min
82+
private$max <- max
83+
private$value <- NULL
84+
private$closed <- FALSE
9185

92-
.session$sendProgress('open', list(id = .id))
86+
session$sendProgress('open', list(id = private$id))
9387
},
88+
9489
set = function(message = NULL, detail = NULL, value = NULL) {
95-
if (.closed) {
90+
if (private$closed) {
9691
warning("Attempting to set progress, but progress already closed.")
9792
return()
9893
}
9994

10095
if (is.null(value) || is.na(value)) {
10196
value <- NULL
10297
} else {
103-
value <- min(1, max(0, (value - .min) / (.max - .min)))
98+
value <- min(1, max(0, (value - private$min) / (private$max - private$min)))
10499
}
105100

106-
.value <<- value
101+
private$value <- value
107102

108103
data <- dropNulls(list(
109-
id = .id,
104+
id = private$id,
110105
message = message,
111106
detail = detail,
112107
value = value
113108
))
114109

115-
.session$sendProgress('update', data)
110+
private$session$sendProgress('update', data)
116111
},
117-
getMin = function() .min,
118-
getMax = function() .max,
119-
getValue = function() .value,
112+
113+
getMin = function() private$min,
114+
115+
getMax = function() private$max,
116+
117+
getValue = function() private$value,
118+
120119
close = function() {
121-
if (.closed) {
120+
if (private$closed) {
122121
warning("Attempting to close progress, but progress already closed.")
123122
return()
124123
}
125124

126-
.session$sendProgress('close', list(id = .id))
127-
.closed <<- TRUE
125+
private$session$sendProgress('close', list(id = private$id))
126+
private$closed <- TRUE
128127
}
128+
),
129+
130+
private = list(
131+
session = 'environment',
132+
id = character(0),
133+
min = numeric(0),
134+
max = numeric(0),
135+
value = NULL,
136+
closed = logical(0)
129137
)
130138
)
131139

0 commit comments

Comments
 (0)