@@ -26,7 +26,7 @@ setOldClass("join_keys")
2626# ' Access or modify with [join_keys()].
2727# ' @slot verified (`logical(1)`) flag signifying that code in `@code` has been
2828# ' proven to yield contents of `@.xData`.
29- # ' Used internally. See [`verify()`] for more details.
29+ # ' Used internally. See [`teal.data:: verify()`] for more details.
3030# '
3131# ' @inheritSection teal.code::`qenv-class` Code
3232# '
@@ -35,11 +35,7 @@ setOldClass("join_keys")
3535setClass(
3636 Class = " teal_data" ,
3737 contains = " qenv" ,
38- slots = c(join_keys = " join_keys" , verified = " logical" ),
39- prototype = list (
40- join_keys = join_keys(),
41- verified = logical (0 )
42- )
38+ slots = c(join_keys = " join_keys" , verified = " logical" )
4339)
4440
4541# ' It initializes the `teal_data` class
@@ -50,13 +46,12 @@ setClass(
5046setMethod(
5147 " initialize" ,
5248 " teal_data" ,
53- function (.Object , .xData = list (), join_keys = join_keys(), code = list (), ... ) { # nolint: object_name.
54- # Allow .xData to be a list and convert it to an environment
55- if (! missing(.xData ) && inherits(.xData , " list" )) {
56- .xData <- rlang :: env_clone(list2env(.xData ), parent = parent.env(.GlobalEnv )) # nolint: object_name.
57- lockEnvironment(.xData , bindings = TRUE )
58- }
49+ function (.Object , .xData , join_keys , code , ... ) { # nolint: object_name.
50+ if (missing(.xData )) .xData <- new.env() # nolint: object_name.
51+ if (missing(join_keys )) join_keys <- teal.data :: join_keys()
52+ if (missing(code )) code <- character (0L )
5953 args <- list (... )
54+
6055 checkmate :: assert_environment(.xData )
6156 checkmate :: assert_class(join_keys , " join_keys" )
6257 checkmate :: assert_list(args , names = " named" )
@@ -67,15 +62,12 @@ setMethod(
6762 if (is.language(code )) {
6863 code <- paste(lang2calls(code ), collapse = " \n " )
6964 }
70- if (length(code )) {
71- code <- paste(code , collapse = " \n " )
72- }
7365
7466 methods :: callNextMethod(
7567 .Object ,
7668 .xData ,
7769 join_keys = join_keys ,
78- verified = (length(args $ code ) == 0L && length(.xData ) == 0L ),
70+ verified = (length(code ) == 0L && length(.xData ) == 0L ),
7971 code = code2list(code ),
8072 ...
8173 )
@@ -97,6 +89,7 @@ code2list <- function(code) {
9789 if (length(code ) == 0 ) {
9890 return (list ())
9991 }
92+ code <- paste(code , collapse = " \n " )
10093
10194 parsed_code <- parse(text = code , keep.source = TRUE )
10295
0 commit comments