From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: [PATCH] ob-ruby.el fix for :session parameter Date: Mon, 21 Oct 2013 11:42:52 -0600 Message-ID: <87hacatt9f.fsf@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57815) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VYJVd-0004ex-DI for emacs-orgmode@gnu.org; Mon, 21 Oct 2013 13:43:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VYJVY-0002nQ-TY for emacs-orgmode@gnu.org; Mon, 21 Oct 2013 13:43:17 -0400 Received: from mail-pa0-x229.google.com ([2607:f8b0:400e:c03::229]:41581) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VYJVY-0002n6-Ih for emacs-orgmode@gnu.org; Mon, 21 Oct 2013 13:43:12 -0400 Received: by mail-pa0-f41.google.com with SMTP id bj1so8469109pad.28 for ; Mon, 21 Oct 2013 10:43:11 -0700 (PDT) In-Reply-To: (Oleh's message of "Mon, 21 Oct 2013 13:15:59 +0200") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Oleh Cc: org mode 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