now passing basic-ruby test

This commit is contained in:
Eric Schulte 2009-06-12 16:08:51 -07:00
parent 5675e56585
commit 8f9ae7314a
2 changed files with 19 additions and 12 deletions

View File

@ -54,14 +54,11 @@ called by `org-babel-execute-src-block'."
(results (org-babel-ruby-evaluate session full-body result-type))) (results (org-babel-ruby-evaluate session full-body result-type)))
(if (member "scalar" result-params) (if (member "scalar" result-params)
results results
(setq results (case result-type ;; process results based on the result-type (case result-type ;; process results based on the result-type
('output (let ((tmp-file (make-temp-file "org-babel-ruby"))) ('output (let ((tmp-file (make-temp-file "org-babel-ruby")))
(with-temp-file tmp-file (insert results)) (with-temp-file tmp-file (insert results))
(org-babel-import-elisp-from-file tmp-file))) (org-babel-import-elisp-from-file tmp-file)))
('value (org-babel-ruby-table-or-results results)))) ('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) (defun org-babel-ruby-var-to-ruby (var)
"Convert an elisp var into a string of ruby source code "Convert an elisp var into a string of ruby source code
@ -125,11 +122,20 @@ last statement in BODY."
(setq string-buffer (substring string-buffer (match-end 0)))) (setq string-buffer (substring string-buffer (match-end 0))))
;; split results with `comint-prompt-regexp' ;; split results with `comint-prompt-regexp'
(setq results (cdr (member org-babel-ruby-eoe-indicator (setq results (cdr (member org-babel-ruby-eoe-indicator
(reverse (mapcar #'org-babel-trim (split-string string-buffer comint-prompt-regexp)))))) (reverse (mapcar #'org-babel-ruby-read-string
(mapcar #'org-babel-trim
(split-string string-buffer comint-prompt-regexp)))))))
(message "near-final=%S" results)
(case result-type (case result-type
(output (mapconcat #'identity (reverse (cdr results)) "\n")) (output (mapconcat #'identity (reverse (cdr results)) "\n"))
(value (car results)) (value (car results))
(t (reverse results)))))) (t (reverse results))))))
(defun org-babel-ruby-read-string (string)
"Strip \\\"s from around ruby string"
(if (string-match "\"\\([^\000]+\\)\"" string)
(match-string 1 string)
string))
(provide 'org-babel-ruby) (provide 'org-babel-ruby)
;;; org-babel-ruby.el ends here ;;; org-babel-ruby.el ends here

View File

@ -114,7 +114,8 @@ table, allowing the test suite to be run be evaluation of the table
and the results to be collected in the same table. and the results to be collected in the same table.
* Tasks [22/38] * Tasks [22/41]
** TODO add a function to jump to a source-block by name
** TODO Create objects in top level (global) environment [3/5] ** TODO Create objects in top level (global) environment [3/5]
*sessions* *sessions*
@ -1976,8 +1977,8 @@ of these tests may fail.
| basic evaluation | | | | | pass | | basic evaluation | | | | | pass |
|-------------------------+----------------------------+-----+-------------+-------------+------| |-------------------------+----------------------------+-----+-------------+-------------+------|
| emacs lisp | basic-elisp | | 5 | 5 | pass | | emacs lisp | basic-elisp | | 5 | 5 | pass |
| shell | basic-shell | | 6 | 6 | pass | | shell | basic-shell | | 6 | 6 | pass |
| ruby | basic-ruby | | org-babel | org-babel | pass | | ruby | basic-ruby | | org-babel | org-babel | pass |
| python | basic-python | | hello world | hello world | pass | | python | basic-python | | hello world | hello world | pass |
| R | basic-R | | 13 | 13 | pass | | R | basic-R | | 13 | 13 | pass |
|-------------------------+----------------------------+-----+-------------+-------------+------| |-------------------------+----------------------------+-----+-------------+-------------+------|