Browse Source

ruby now respects the scalar/vector :results header arguments

Eric Schulte 16 years ago
parent
commit
190a66c6af
2 changed files with 13 additions and 8 deletions
  1. 10 5
      lisp/org-babel-ruby.el
  2. 3 3
      org-babel.org

+ 10 - 5
lisp/org-babel-ruby.el

@@ -52,11 +52,16 @@ called by `org-babel-execute-src-block'."
                       vars "\n") "\n" body "\n")) ;; then the source block body
          (session (org-babel-ruby-initiate-session (cdr (assoc :session params))))
          (results (org-babel-ruby-evaluate session full-body result-type)))
-    (case result-type ;; process results based on the result-type
-      ('output (let ((tmp-file (make-temp-file "org-babel-ruby")))
-                 (with-temp-file tmp-file (insert results))
-                 (org-babel-import-elisp-from-file tmp-file)))
-      ('value (org-babel-ruby-table-or-results results)))))
+    (if (member "scalar" result-params)
+        results
+      (setq results (case result-type ;; process results based on the result-type
+                      ('output (let ((tmp-file (make-temp-file "org-babel-ruby")))
+                                 (with-temp-file tmp-file (insert results))
+                                 (org-babel-import-elisp-from-file tmp-file)))
+                      ('value (org-babel-ruby-table-or-results results))))
+      (if (and (member "vector" results) (not (listp results)))
+          (list (list results))
+        results))))
 
 (defun org-babel-ruby-var-to-ruby (var)
   "Convert an elisp var into a string of ruby or python source

+ 3 - 3
org-babel.org

@@ -478,16 +478,16 @@ This should include...
 
 - sessions in comint buffers
 
-**** DONE Ruby [4/5]
+**** DONE Ruby [5/5]
 
 - [X] functional results working with comint
 - [X] script results
-- [ ] ensure scalar/vector results args are taken into consideration
+- [X] ensure scalar/vector results args are taken into consideration
 - [X] ensure callable by other source block
 - [X] rename buffer after session
 
 #+srcname: ruby-use-last-output
-#+begin_src ruby :results replace
+#+begin_src ruby :results replace 
 a = 2
 b = 4
 c = a + b