forked from mirrors/org-mode
use org-babel-result-cond in Ruby code blocks
* lisp/ob-ruby.el (org-babel-execute:ruby): Use org-babel-result-cond in Ruby code blocks. (org-babel-ruby-evaluate): Delay table processing.
This commit is contained in:
parent
fe93daa72a
commit
09cb6d3f21
|
@ -68,7 +68,9 @@ This function is called by `org-babel-execute-src-block'."
|
||||||
(org-babel-ruby-evaluate
|
(org-babel-ruby-evaluate
|
||||||
session full-body result-type result-params))))
|
session full-body result-type result-params))))
|
||||||
(org-babel-reassemble-table
|
(org-babel-reassemble-table
|
||||||
result
|
(org-babel-result-cond result-params
|
||||||
|
result
|
||||||
|
(org-babel-ruby-table-or-string result))
|
||||||
(org-babel-pick-name (cdr (assoc :colname-names params))
|
(org-babel-pick-name (cdr (assoc :colname-names params))
|
||||||
(cdr (assoc :colnames params)))
|
(cdr (assoc :colnames params)))
|
||||||
(org-babel-pick-name (cdr (assoc :rowname-names params))
|
(org-babel-pick-name (cdr (assoc :rowname-names params))
|
||||||
|
@ -203,31 +205,27 @@ return the value of the last statement in BODY, as elisp."
|
||||||
(comint-send-input nil t)) 2)
|
(comint-send-input nil t)) 2)
|
||||||
"\n") "[\r\n]")) "\n"))
|
"\n") "[\r\n]")) "\n"))
|
||||||
(value
|
(value
|
||||||
((lambda (results)
|
(let* ((tmp-file (org-babel-temp-file "ruby-"))
|
||||||
(if (or (member "code" result-params) (member "pp" result-params))
|
(ppp (or (member "code" result-params)
|
||||||
results
|
(member "pp" result-params))))
|
||||||
(org-babel-ruby-table-or-string results)))
|
(org-babel-comint-with-output
|
||||||
(let* ((tmp-file (org-babel-temp-file "ruby-"))
|
(buffer org-babel-ruby-eoe-indicator t body)
|
||||||
(ppp (or (member "code" result-params)
|
(when ppp (insert "require 'pp';") (comint-send-input nil t))
|
||||||
(member "pp" result-params))))
|
(mapc
|
||||||
(org-babel-comint-with-output
|
(lambda (line)
|
||||||
(buffer org-babel-ruby-eoe-indicator t body)
|
(insert (org-babel-chomp line)) (comint-send-input nil t))
|
||||||
(when ppp (insert "require 'pp';") (comint-send-input nil t))
|
(append
|
||||||
(mapc
|
(list body)
|
||||||
(lambda (line)
|
(if (not ppp)
|
||||||
(insert (org-babel-chomp line)) (comint-send-input nil t))
|
(list (format org-babel-ruby-f-write
|
||||||
(append
|
(org-babel-process-file-name tmp-file 'noquote)))
|
||||||
(list body)
|
(list
|
||||||
(if (not ppp)
|
"results=_" "require 'pp'" "orig_out = $stdout"
|
||||||
(list (format org-babel-ruby-f-write
|
(format org-babel-ruby-pp-f-write
|
||||||
(org-babel-process-file-name tmp-file 'noquote)))
|
(org-babel-process-file-name tmp-file 'noquote))))
|
||||||
(list
|
(list org-babel-ruby-eoe-indicator)))
|
||||||
"results=_" "require 'pp'" "orig_out = $stdout"
|
(comint-send-input nil t))
|
||||||
(format org-babel-ruby-pp-f-write
|
(org-babel-eval-read-file tmp-file))))))
|
||||||
(org-babel-process-file-name tmp-file 'noquote))))
|
|
||||||
(list org-babel-ruby-eoe-indicator)))
|
|
||||||
(comint-send-input nil t))
|
|
||||||
(org-babel-eval-read-file tmp-file)))))))
|
|
||||||
|
|
||||||
(defun org-babel-ruby-read-string (string)
|
(defun org-babel-ruby-read-string (string)
|
||||||
"Strip \\\"s from around a ruby string."
|
"Strip \\\"s from around a ruby string."
|
||||||
|
|
Loading…
Reference in New Issue