org-babel: file output for ruby and python

With this change, if :file <filepath> is specified, ruby and python
blindly output a link to <filepath>. Responsibility for creating the
contents in <filepath> lies with the python/ruby code.
This commit is contained in:
Dan Davison 2009-11-05 12:04:27 -05:00 committed by Eric Schulte
parent 210f85ce49
commit 6875d4d8e3
2 changed files with 8 additions and 6 deletions

View File

@ -40,15 +40,16 @@
"Execute a block of Python code with org-babel. This function is "Execute a block of Python code with org-babel. This function is
called by `org-babel-execute-src-block' via multiple-value-bind." called by `org-babel-execute-src-block' via multiple-value-bind."
(message "executing Python source code block") (message "executing Python source code block")
(let ((full-body (concat (let* ((full-body (concat
(mapconcat ;; define any variables (mapconcat ;; define any variables
(lambda (pair) (lambda (pair)
(format "%s=%s" (format "%s=%s"
(car pair) (car pair)
(org-babel-python-var-to-python (cdr pair)))) (org-babel-python-var-to-python (cdr pair))))
vars "\n") "\n" (org-babel-trim body) "\n")) ;; then the source block body vars "\n") "\n" (org-babel-trim body) "\n")) ;; then the source block body
(session (org-babel-python-initiate-session session))) (session (org-babel-python-initiate-session session))
(org-babel-python-evaluate session full-body result-type))) (result (org-babel-python-evaluate session full-body result-type)))
(or (cdr (assoc :file params)) result)))
(defun org-babel-prep-session:python (session params) (defun org-babel-prep-session:python (session params)
"Prepare SESSION according to the header arguments specified in PARAMS." "Prepare SESSION according to the header arguments specified in PARAMS."

View File

@ -50,15 +50,16 @@
"Execute a block of Ruby code with org-babel. This function is "Execute a block of Ruby code with org-babel. This function is
called by `org-babel-execute-src-block' via multiple-value-bind." called by `org-babel-execute-src-block' via multiple-value-bind."
(message "executing Ruby source code block") (message "executing Ruby source code block")
(let ((full-body (concat (let* ((full-body (concat
(mapconcat ;; define any variables (mapconcat ;; define any variables
(lambda (pair) (lambda (pair)
(format "%s=%s" (format "%s=%s"
(car pair) (car pair)
(org-babel-ruby-var-to-ruby (cdr pair)))) (org-babel-ruby-var-to-ruby (cdr pair))))
vars "\n") "\n" body "\n")) ;; then the source block body vars "\n") "\n" body "\n")) ;; then the source block body
(session (org-babel-ruby-initiate-session session))) (session (org-babel-ruby-initiate-session session))
(org-babel-ruby-evaluate session full-body result-type))) (result (org-babel-ruby-evaluate session full-body result-type)))
(or (cdr (assoc :file params)) result)))
(defun org-babel-prep-session:ruby (session params) (defun org-babel-prep-session:ruby (session params)
"Prepare SESSION according to the header arguments specified in PARAMS." "Prepare SESSION according to the header arguments specified in PARAMS."