forked from mirrors/org-mode
Handle literal 'hline arguments passed to ruby
* lisp/ob-ruby.el: New customizations `org-babel-ruby-hline-to' and `org-babel-ruby-nil-to' (org-babel-ruby-var-to-ruby): Convert incoming 'hlines. (org-babel-ruby-table-or-string): Convert outgoing nils. Patch by Rick Frankel.
This commit is contained in:
parent
138f18d3ce
commit
cb35fa9f46
|
@ -50,6 +50,22 @@
|
|||
(defvar org-babel-ruby-command "ruby"
|
||||
"Name of command to use for executing ruby code.")
|
||||
|
||||
(defcustom org-babel-ruby-hline-to "nil"
|
||||
"Replace hlines in incoming tables with this when translating to ruby."
|
||||
:group 'org-babel
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type 'string)
|
||||
|
||||
(defcustom org-babel-ruby-nil-to 'hline
|
||||
"Replace 'nil' in ruby tables with this before returning."
|
||||
:group 'org-babel
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type 'string)
|
||||
|
||||
|
||||
|
||||
(defun org-babel-execute:ruby (body params)
|
||||
"Execute a block of Ruby code with Babel.
|
||||
This function is called by `org-babel-execute-src-block'."
|
||||
|
@ -115,13 +131,21 @@ Convert an elisp value into a string of ruby source code
|
|||
specifying a variable of the same value."
|
||||
(if (listp var)
|
||||
(concat "[" (mapconcat #'org-babel-ruby-var-to-ruby var ", ") "]")
|
||||
(format "%S" var)))
|
||||
(if (equal var 'hline)
|
||||
org-babel-ruby-hline-to
|
||||
(format "%S" var))))
|
||||
|
||||
(defun org-babel-ruby-table-or-string (results)
|
||||
"Convert RESULTS into an appropriate elisp value.
|
||||
If RESULTS look like a table, then convert them into an
|
||||
Emacs-lisp table, otherwise return the results as a string."
|
||||
(org-babel-script-escape results))
|
||||
((lambda (res)
|
||||
(if (listp res)
|
||||
(mapcar (lambda (el) (if (equal el 'nil)
|
||||
org-babel-ruby-nil-to el))
|
||||
res)
|
||||
res))
|
||||
(org-babel-script-escape results)))
|
||||
|
||||
(defun org-babel-ruby-initiate-session (&optional session params)
|
||||
"Initiate a ruby session.
|
||||
|
|
Loading…
Reference in a new issue