emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [PATCH] ob-ruby.el fix for :session parameter
@ 2013-10-21 11:15 Oleh
  2013-10-21 17:42 ` Eric Schulte
  2014-09-20 21:54 ` Achim Gratz
  0 siblings, 2 replies; 6+ messages in thread
From: Oleh @ 2013-10-21 11:15 UTC (permalink / raw)
  To: org mode

[-- Attachment #1: Type: text/plain, Size: 440 bytes --]

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

[-- Attachment #2: 0001-ob-ruby.el-fix-result-of-results-output-session-comb.patch --]
[-- Type: application/octet-stream, Size: 3511 bytes --]

From e27f248f58258b78280e69cd78140e935527245e Mon Sep 17 00:00:00 2001
From: Oleh Krehel <ohwoeowho@gmail.com>
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 <http://www.gnu.org/licenses/>.
+
+;;; 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
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] ob-ruby.el fix for :session parameter
  2013-10-21 11:15 [PATCH] ob-ruby.el fix for :session parameter Oleh
@ 2013-10-21 17:42 ` Eric Schulte
  2013-10-21 17:55   ` Oleh
  2014-09-20 21:54 ` Achim Gratz
  1 sibling, 1 reply; 6+ messages in thread
From: Eric Schulte @ 2013-10-21 17:42 UTC (permalink / raw)
  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 <ohwoeowho@gmail.com> 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 <ohwoeowho@gmail.com>
> 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 <http://www.gnu.org/licenses/>.
> +
> +;;; 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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] ob-ruby.el fix for :session parameter
  2013-10-21 17:42 ` Eric Schulte
@ 2013-10-21 17:55   ` Oleh
  2013-10-21 19:09     ` Eric Schulte
  0 siblings, 1 reply; 6+ messages in thread
From: Oleh @ 2013-10-21 17:55 UTC (permalink / raw)
  To: Eric Schulte; +Cc: org mode

[-- Attachment #1: Type: text/plain, Size: 5169 bytes --]

Hi Eric,

Here's the update.

regards,
Oleh

On Mon, Oct 21, 2013 at 7:42 PM, Eric Schulte <schulte.eric@gmail.com> 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 <ohwoeowho@gmail.com> 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 <ohwoeowho@gmail.com>
>> 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 <http://www.gnu.org/licenses/>.
>> +
>> +;;; 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

[-- Attachment #2: 0001-ob-ruby.el-fix-result-of-results-output-session-comb.patch --]
[-- Type: application/octet-stream, Size: 2701 bytes --]

From 089bbf66a7ba632a34dacb4f42479d7d55dd49bd Mon Sep 17 00:00:00 2001
From: Oleh Krehel <ohwoeowho@gmail.com>
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              |  2 +-
 testing/lisp/test-ob-ruby.el | 49 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 50 insertions(+), 1 deletion(-)
 create mode 100644 testing/lisp/test-ob-ruby.el

diff --git a/lisp/ob-ruby.el b/lisp/ob-ruby.el
index af52831..eea517d 100644
--- a/lisp/ob-ruby.el
+++ b/lisp/ob-ruby.el
@@ -225,7 +225,7 @@ return the value of the last statement in BODY, as elisp."
 	      (mapc
 	       (lambda (line)
 		 (insert (org-babel-chomp line)) (comint-send-input nil t))
-	       (list body org-babel-ruby-eoe-indicator))
+	       (list "conf.echo=false" body "conf.echo=true" org-babel-ruby-eoe-indicator))
 	      (comint-send-input nil t)) 2)
 	   "\n") "[\r\n]")) "\n"))
       (value
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 <http://www.gnu.org/licenses/>.
+
+;;; 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
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] ob-ruby.el fix for :session parameter
  2013-10-21 17:55   ` Oleh
@ 2013-10-21 19:09     ` Eric Schulte
  0 siblings, 0 replies; 6+ messages in thread
From: Eric Schulte @ 2013-10-21 19:09 UTC (permalink / raw)
  To: Oleh; +Cc: org mode

Applied, Thanks!

Oleh <ohwoeowho@gmail.com> writes:

> Hi Eric,
>
> Here's the update.
>
> regards,
> Oleh
>
> On Mon, Oct 21, 2013 at 7:42 PM, Eric Schulte <schulte.eric@gmail.com> 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 <ohwoeowho@gmail.com> 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 <ohwoeowho@gmail.com>
>>> 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 <http://www.gnu.org/licenses/>.
>>> +
>>> +;;; 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
>
> From 089bbf66a7ba632a34dacb4f42479d7d55dd49bd Mon Sep 17 00:00:00 2001
> From: Oleh Krehel <ohwoeowho@gmail.com>
> 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              |  2 +-
>  testing/lisp/test-ob-ruby.el | 49 ++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 50 insertions(+), 1 deletion(-)
>  create mode 100644 testing/lisp/test-ob-ruby.el
>
> diff --git a/lisp/ob-ruby.el b/lisp/ob-ruby.el
> index af52831..eea517d 100644
> --- a/lisp/ob-ruby.el
> +++ b/lisp/ob-ruby.el
> @@ -225,7 +225,7 @@ return the value of the last statement in BODY, as elisp."
>  	      (mapc
>  	       (lambda (line)
>  		 (insert (org-babel-chomp line)) (comint-send-input nil t))
> -	       (list body org-babel-ruby-eoe-indicator))
> +	       (list "conf.echo=false" body "conf.echo=true" org-babel-ruby-eoe-indicator))
>  	      (comint-send-input nil t)) 2)
>  	   "\n") "[\r\n]")) "\n"))
>        (value
> 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 <http://www.gnu.org/licenses/>.
> +
> +;;; 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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] ob-ruby.el fix for :session parameter
  2013-10-21 11:15 [PATCH] ob-ruby.el fix for :session parameter Oleh
  2013-10-21 17:42 ` Eric Schulte
@ 2014-09-20 21:54 ` Achim Gratz
  2014-09-21 11:02   ` Achim Gratz
  1 sibling, 1 reply; 6+ messages in thread
From: Achim Gratz @ 2014-09-20 21:54 UTC (permalink / raw)
  To: emacs-orgmode

Oleh writes:
> #+RESULTS:
> :
> : 3

Well, that would still be an empty line too many.  But aside from that,
what I'm actually getting with a recent Emacs and inf-ruby is:

#+RESULTS:
: 
: irb(main):003:0> irb(main):004:0> irb(main):005:0> 3

So either comint-mode has developed some problem in the meantime or
there is some other configuration missing for this to work.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptations for Waldorf Q V3.00R3 and Q+ V3.54R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] ob-ruby.el fix for :session parameter
  2014-09-20 21:54 ` Achim Gratz
@ 2014-09-21 11:02   ` Achim Gratz
  0 siblings, 0 replies; 6+ messages in thread
From: Achim Gratz @ 2014-09-21 11:02 UTC (permalink / raw)
  To: emacs-orgmode

Achim Gratz writes:
> Oleh writes:
>> #+RESULTS:
>> :
>> : 3
>
> Well, that would still be an empty line too many.  But aside from that,
> what I'm actually getting with a recent Emacs and inf-ruby is:
>
> #+RESULTS:
> : 
> : irb(main):003:0> irb(main):004:0> irb(main):005:0> 3
>
> So either comint-mode has developed some problem in the meantime or
> there is some other configuration missing for this to work.

I've worked around the strange comint behaviour by temporarily disabling
all prompts.  The empty line was triggered by an extra comint-send-input
which I removed (and changed the test to follow suit).  There's probably
more such problems for other Babel languages that rely on comint for
their session support.

Both changes done on master in 4ef78e68c1.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptation for Waldorf microQ V2.22R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-09-21 11:37 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-21 11:15 [PATCH] ob-ruby.el fix for :session parameter Oleh
2013-10-21 17:42 ` Eric Schulte
2013-10-21 17:55   ` Oleh
2013-10-21 19:09     ` Eric Schulte
2014-09-20 21:54 ` Achim Gratz
2014-09-21 11:02   ` Achim Gratz

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).