aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dialoguer/__init__.py7
-rw-r--r--dialoguer/context_script.r29
2 files changed, 24 insertions, 12 deletions
diff --git a/dialoguer/__init__.py b/dialoguer/__init__.py
index bf1e978..7b05a5f 100644
--- a/dialoguer/__init__.py
+++ b/dialoguer/__init__.py
@@ -89,15 +89,18 @@ class Dialogue:
return data
def import_variable(self, var_name):
+ self.send(1)
+ recv_chk = self.recv(set_data_type=bool)
self.send(var_name, False)
val = self.recv(True)
return val
- def evaluate_expression(self, expr):
+ def evaluate_expression(self, method_name, *args):
+ self.send(2)
pass
def close(self):
- self.send('!DISCONNECT')
+ self.send(0)
self._launch.join()
self.conn.close()
self.conn = None
diff --git a/dialoguer/context_script.r b/dialoguer/context_script.r
index 9d4a4d1..1d59dd8 100644
--- a/dialoguer/context_script.r
+++ b/dialoguer/context_script.r
@@ -116,6 +116,16 @@ find_connection <- function() {
return(con)
}
+import_variable <- function() {
+ var_name <- recv(con, FALSE, "character")
+ var_val <- get(var_name)
+ send(con, var_val, TRUE)
+}
+
+evaluate_expression <- function () {
+
+}
+
con <- find_connection()
#load target file
@@ -123,16 +133,15 @@ source(TARGET_FILE)
send(con, TRUE)
-msg <- ''
-while (msg != '!DISCONNECT') {
- # there should be several handeling methods
- # returning variables
- # evaluating expressions
- msg <- recv(con, FALSE, "character")
- if (msg != '!DISCONNECT') {
- val <- get(msg)
- display_msg(msg, val)
- send(con, val, TRUE)
+cmd_int <- -1
+while (cmd_int != 0) {
+ cmd_int <- recv(con, FALSE, "integer")
+ if (cmd_int == 1){
+ send(con, TRUE)
+ import_variable()
+ } else if (cmd_int == 2) {
+ send(con, TRUE)
+ evaluate_expression()
}
}