diff --git a/eg/tryhy/js/repl.js b/eg/tryhy/js/repl.js
index 5f72fcd..91a22bb 100644
--- a/eg/tryhy/js/repl.js
+++ b/eg/tryhy/js/repl.js
@@ -6,8 +6,9 @@ $(document).ready(function(){
else return true;
},
commandHandle:function(line, report){
- $.get("/eval", {code: line}, function(data) {
- report([{msg : data, className:"jquery-console-message-value"}]);
+ $.getJSON("/eval", {code: line}, function(data) {
+ report([{msg : data.stdout, className:"jquery-console-message-value"},
+ {msg : data.stderr, className:"jquery-console-message-error"}]);
});
},
animateScroll:true,
diff --git a/eg/tryhy/main.hy b/eg/tryhy/main.hy
index 9914643..a1ec69b 100644
--- a/eg/tryhy/main.hy
+++ b/eg/tryhy/main.hy
@@ -2,20 +2,25 @@
(import [hy.cmdline [HyREPL]]
[sys]
[StringIO [StringIO]]
- [flask [Flask redirect request]])
+ [flask [Flask redirect request]]
+ [json])
(defclass MyHyREPL [HyREPL]
[[eval (fn [self code]
(setv old-stdout sys.stdout)
+ (setv old-stderr sys.stderr)
(setv fake-stdout (StringIO))
(setv sys.stdout fake-stdout)
+ (setv fake-stderr (StringIO))
+ (setv sys.stderr fake-stderr)
(HyREPL.runsource self code "" "single")
(setv sys.stdout old-stdout)
- (fake-stdout.getvalue))]])
+ (setv sys.stderr old-stderr)
+ {"stdout" (fake-stdout.getvalue) "stderr" (fake-stderr.getvalue)})]])
(def repl (MyHyREPL))
(def app (Flask __name__))
(route hello "/" [name] (.format "(hello \"{0}!\")" name))
-(route eval-get "/eval" [] (repl.eval (get request.args "code")))
+(route eval-get "/eval" [] (json.dumps (repl.eval (get request.args "code"))))