* [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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.