Hi Eric, Here's the update. regards, Oleh On Mon, Oct 21, 2013 at 7:42 PM, Eric Schulte wrote: > Hi Oleh, > > Thanks for submitting this patch. Instead of the current progn/setq > approach could you simply add your the "conf.echo=false\n" lines to the > following list? > > (list body org-babel-ruby-eoe-indicator) > > With that change I'd be happy to apply this patch. > > Also, extra thanks for submitting tests along with your patch, much > appreciated! > > Oleh writes: > >> Hi all, >> >> I attach a patch to change from this behavior: >> >> #+begin_src ruby :session :results output >> s = "1" >> s = "2" >> s = "3" >> puts s >> #+end_src >> >> #+RESULTS: >> : => "1" >> : => "2" >> : => "3" >> : 3 >> >> To this behavior >> >> #+begin_src ruby :session :results output >> s = "1" >> s = "2" >> s = "3" >> puts s >> #+end_src >> >> #+RESULTS: >> : >> : 3 >> >> I just wrap the code in "conf.echo=false\n" and "\nconf.echo=true\n". >> I have to set it back to true, otherwise it hangs. >> >> regards, >> Oleh >> >> From e27f248f58258b78280e69cd78140e935527245e Mon Sep 17 00:00:00 2001 >> From: Oleh Krehel >> Date: Mon, 21 Oct 2013 13:03:28 +0200 >> Subject: [PATCH] ob-ruby.el: fix result of :results output :session >> combination. >> >> * lisp/ob-ruby.el (org-babel-ruby-evaluate): >> set conf.echo=false for the duration of evaluation. >> >> * testing/lisp/test-ob-ruby.el (test-ob-ruby/session-output): new test. >> --- >> lisp/ob-ruby.el | 32 +++++++++++++++-------------- >> testing/lisp/test-ob-ruby.el | 49 ++++++++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 66 insertions(+), 15 deletions(-) >> create mode 100644 testing/lisp/test-ob-ruby.el >> >> diff --git a/lisp/ob-ruby.el b/lisp/ob-ruby.el >> index af52831..ddbd0f8 100644 >> --- a/lisp/ob-ruby.el >> +++ b/lisp/ob-ruby.el >> @@ -213,21 +213,23 @@ return the value of the last statement in BODY, as elisp." >> ;; comint session evaluation >> (case result-type >> (output >> - (mapconcat >> - #'identity >> - (butlast >> - (split-string >> - (mapconcat >> - #'org-babel-trim >> - (butlast >> - (org-babel-comint-with-output >> - (buffer org-babel-ruby-eoe-indicator t body) >> - (mapc >> - (lambda (line) >> - (insert (org-babel-chomp line)) (comint-send-input nil t)) >> - (list body org-babel-ruby-eoe-indicator)) >> - (comint-send-input nil t)) 2) >> - "\n") "[\r\n]")) "\n")) >> + (progn >> + (setq body (concat "conf.echo=false\n" body "\nconf.echo=true\n")) >> + (mapconcat >> + #'identity >> + (butlast >> + (split-string >> + (mapconcat >> + #'org-babel-trim >> + (butlast >> + (org-babel-comint-with-output >> + (buffer org-babel-ruby-eoe-indicator t body) >> + (mapc >> + (lambda (line) >> + (insert (org-babel-chomp line)) (comint-send-input nil t)) >> + (list body org-babel-ruby-eoe-indicator)) >> + (comint-send-input nil t)) 2) >> + "\n") "[\r\n]")) "\n"))) >> (value >> (let* ((tmp-file (org-babel-temp-file "ruby-")) >> (ppp (or (member "code" result-params) >> diff --git a/testing/lisp/test-ob-ruby.el b/testing/lisp/test-ob-ruby.el >> new file mode 100644 >> index 0000000..74cf163 >> --- /dev/null >> +++ b/testing/lisp/test-ob-ruby.el >> @@ -0,0 +1,49 @@ >> +;;; test-ob-ruby.el --- tests for ob-ruby.el >> + >> +;; Copyright (c) 2013 Oleh Krehel >> +;; Authors: Oleh Krehel >> + >> +;; This program is free software; you can redistribute it and/or modify >> +;; it under the terms of the GNU General Public License as published by >> +;; the Free Software Foundation, either version 3 of the License, or >> +;; (at your option) any later version. >> + >> +;; This program is distributed in the hope that it will be useful, >> +;; but WITHOUT ANY WARRANTY; without even the implied warranty of >> +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> +;; GNU General Public License for more details. >> + >> +;; You should have received a copy of the GNU General Public License >> +;; along with this program. If not, see . >> + >> +;;; Code: >> +(org-test-for-executable "ruby") >> +(unless (featurep 'ob-ruby) >> + (signal 'missing-test-dependency "Support for Ruby code blocks")) >> + >> +(ert-deftest test-ob-ruby/session-output () >> + (should (equal (org-test-with-temp-text "#+begin_src ruby :session :results output >> +s = \"1\" >> +s = \"2\" >> +s = \"3\" >> +puts s >> +#+end_src" >> + (org-ctrl-c-ctrl-c) >> + (substring-no-properties >> + (buffer-string))) >> + "#+begin_src ruby :session :results output >> +s = \"1\" >> +s = \"2\" >> +s = \"3\" >> +puts s >> +#+end_src >> + >> +#+RESULTS: >> +: >> +: 3 >> + >> +"))) >> + >> +(provide 'test-ob-ruby) >> + >> +;;; test-ob-ruby.el ends here > > -- > Eric Schulte > https://cs.unm.edu/~eschulte > PGP: 0x614CA05D