From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleh Subject: Re: [PATCH] ob-ruby.el fix for :session parameter Date: Mon, 21 Oct 2013 19:55:18 +0200 Message-ID: References: <87hacatt9f.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a11c33fd0b5752a04e943fc7e Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:59937) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VYJhJ-0000Ko-OI for emacs-orgmode@gnu.org; Mon, 21 Oct 2013 13:55:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VYJhH-0006V4-Vw for emacs-orgmode@gnu.org; Mon, 21 Oct 2013 13:55:21 -0400 Received: from mail-wi0-x230.google.com ([2a00:1450:400c:c05::230]:57218) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VYJhH-0006Uy-Jx for emacs-orgmode@gnu.org; Mon, 21 Oct 2013 13:55:19 -0400 Received: by mail-wi0-f176.google.com with SMTP id l12so4379347wiv.3 for ; Mon, 21 Oct 2013 10:55:18 -0700 (PDT) In-Reply-To: <87hacatt9f.fsf@gmail.com> 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: Eric Schulte Cc: org mode --001a11c33fd0b5752a04e943fc7e Content-Type: text/plain; charset=ISO-8859-1 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 --001a11c33fd0b5752a04e943fc7e Content-Type: application/octet-stream; name="0001-ob-ruby.el-fix-result-of-results-output-session-comb.patch" Content-Disposition: attachment; filename="0001-ob-ruby.el-fix-result-of-results-output-session-comb.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hn207y6p0 RnJvbSAwODliYmY2NmE3YmE2MzJhMzRkYWNiNGY0MjQ3OWQ3ZDU1ZGQ0OWJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBPbGVoIEtyZWhlbCA8b2h3b2Vvd2hvQGdtYWlsLmNvbT4KRGF0 ZTogTW9uLCAyMSBPY3QgMjAxMyAxMzowMzoyOCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIG9iLXJ1 YnkuZWw6IGZpeCByZXN1bHQgb2YgOnJlc3VsdHMgb3V0cHV0IDpzZXNzaW9uCiBjb21iaW5hdGlv bi4KCiogbGlzcC9vYi1ydWJ5LmVsIChvcmctYmFiZWwtcnVieS1ldmFsdWF0ZSk6CiAgc2V0IGNv bmYuZWNobz1mYWxzZSBmb3IgdGhlIGR1cmF0aW9uIG9mIGV2YWx1YXRpb24uCgoqIHRlc3Rpbmcv bGlzcC90ZXN0LW9iLXJ1YnkuZWwgKHRlc3Qtb2ItcnVieS9zZXNzaW9uLW91dHB1dCk6IG5ldyB0 ZXN0LgotLS0KIGxpc3Avb2ItcnVieS5lbCAgICAgICAgICAgICAgfCAgMiArLQogdGVzdGluZy9s aXNwL3Rlc3Qtb2ItcnVieS5lbCB8IDQ5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDUwIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL2xpc3AvdGVzdC1vYi1ydWJ5LmVsCgpk aWZmIC0tZ2l0IGEvbGlzcC9vYi1ydWJ5LmVsIGIvbGlzcC9vYi1ydWJ5LmVsCmluZGV4IGFmNTI4 MzEuLmVlYTUxN2QgMTAwNjQ0Ci0tLSBhL2xpc3Avb2ItcnVieS5lbAorKysgYi9saXNwL29iLXJ1 YnkuZWwKQEAgLTIyNSw3ICsyMjUsNyBAQCByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBsYXN0IHN0 YXRlbWVudCBpbiBCT0RZLCBhcyBlbGlzcC4iCiAJICAgICAgKG1hcGMKIAkgICAgICAgKGxhbWJk YSAobGluZSkKIAkJIChpbnNlcnQgKG9yZy1iYWJlbC1jaG9tcCBsaW5lKSkgKGNvbWludC1zZW5k LWlucHV0IG5pbCB0KSkKLQkgICAgICAgKGxpc3QgYm9keSBvcmctYmFiZWwtcnVieS1lb2UtaW5k aWNhdG9yKSkKKwkgICAgICAgKGxpc3QgImNvbmYuZWNobz1mYWxzZSIgYm9keSAiY29uZi5lY2hv PXRydWUiIG9yZy1iYWJlbC1ydWJ5LWVvZS1pbmRpY2F0b3IpKQogCSAgICAgIChjb21pbnQtc2Vu ZC1pbnB1dCBuaWwgdCkpIDIpCiAJICAgIlxuIikgIltcclxuXSIpKSAiXG4iKSkKICAgICAgICh2 YWx1ZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9saXNwL3Rlc3Qtb2ItcnVieS5lbCBiL3Rlc3Rpbmcv bGlzcC90ZXN0LW9iLXJ1YnkuZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NzRjZjE2MwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9iLXJ1YnkuZWwK QEAgLTAsMCArMSw0OSBAQAorOzs7IHRlc3Qtb2ItcnVieS5lbCAtLS0gdGVzdHMgZm9yIG9iLXJ1 YnkuZWwKKworOzsgQ29weXJpZ2h0IChjKSAyMDEzIE9sZWggS3JlaGVsCis7OyBBdXRob3JzOiBP bGVoIEtyZWhlbAorCis7OyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKzs7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9y Cis7OyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCis7OyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKzs7 IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCis7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCis7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorCis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorOzsgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKzs7OyBDb2RlOgorKG9y Zy10ZXN0LWZvci1leGVjdXRhYmxlICJydWJ5IikKKyh1bmxlc3MgKGZlYXR1cmVwICdvYi1ydWJ5 KQorICAoc2lnbmFsICdtaXNzaW5nLXRlc3QtZGVwZW5kZW5jeSAiU3VwcG9ydCBmb3IgUnVieSBj b2RlIGJsb2NrcyIpKQorCisoZXJ0LWRlZnRlc3QgdGVzdC1vYi1ydWJ5L3Nlc3Npb24tb3V0cHV0 ICgpCisgICAgKHNob3VsZCAoZXF1YWwgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIjK2JlZ2lu X3NyYyBydWJ5IDpzZXNzaW9uIDpyZXN1bHRzIG91dHB1dAorcyA9IFwiMVwiCitzID0gXCIyXCIK K3MgPSBcIjNcIgorcHV0cyBzCisjK2VuZF9zcmMiCisgIChvcmctY3RybC1jLWN0cmwtYykKKyAg KHN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAoYnVmZmVyLXN0cmluZykpKQorCQkgICAiIyti ZWdpbl9zcmMgcnVieSA6c2Vzc2lvbiA6cmVzdWx0cyBvdXRwdXQKK3MgPSBcIjFcIgorcyA9IFwi MlwiCitzID0gXCIzXCIKK3B1dHMgcworIytlbmRfc3JjCisKKyMrUkVTVUxUUzoKKzogCis6IDMK KworIikpKQorCisocHJvdmlkZSAndGVzdC1vYi1ydWJ5KQorCis7OzsgdGVzdC1vYi1ydWJ5LmVs IGVuZHMgaGVyZQotLSAKMS44LjQKCg== --001a11c33fd0b5752a04e943fc7e--