diff options
-rw-r--r-- | dialoguer/__init__.py | 8 | ||||
-rw-r--r-- | dialoguer/context_script.r | 11 |
2 files changed, 19 insertions, 0 deletions
diff --git a/dialoguer/__init__.py b/dialoguer/__init__.py index 1b9cb8d..21c51d2 100644 --- a/dialoguer/__init__.py +++ b/dialoguer/__init__.py @@ -99,6 +99,14 @@ class Dialogue: val = self.recv(True) return val + def assign_variable(self, var_name, var_val): + self.send(3) + recv_chk = self.recv(set_data_type=bool) + self.send(var_name, False) + recv_chk = self.recv(set_data_type=bool) + self.send(var_val, True) + recv_chk = self.recv(set_data_type=bool) + def evaluate_expression(self, method_name, *args, **kwargs): self.send(2) recv_chk = self.recv(set_data_type=bool) diff --git a/dialoguer/context_script.r b/dialoguer/context_script.r index 33aacaa..32a0149 100644 --- a/dialoguer/context_script.r +++ b/dialoguer/context_script.r @@ -86,6 +86,14 @@ import_variable <- function() { send(con, var_val, TRUE) } +assign_variable <- function() { + var_name <- recv(con, FALSE, "character") + send(con, TRUE) + var_val <- recv(con, TRUE) + send(con, TRUE) + assign(var_name, var_val, envir = globalenv()) +} + evaluate_expression <- function() { arg_count <- recv(con, FALSE, "integer") send(con, TRUE) @@ -133,6 +141,9 @@ while (cmd_int != 0) { } else if (cmd_int == 2) { send(con, TRUE) evaluate_expression() + } else if (cmd_int == 3) { + send(con, TRUE) + assign_variable() } } |