aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dialoguer/__init__.py8
-rw-r--r--dialoguer/context_script.r11
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()
}
}