Преглед на файлове

fixed bug in ruby session evaluation

Eric Schulte преди 16 години
родител
ревизия
aa5c9985bd
променени са 2 файла, в които са добавени 55 реда и са изтрити 53 реда
  1. 9 7
      lisp/langs/org-babel-ruby.el
  2. 46 46
      org-babel.org

+ 9 - 7
lisp/langs/org-babel-ruby.el

@@ -38,6 +38,7 @@
   "Execute a block of Ruby code with org-babel.  This function is
 called by `org-babel-execute-src-block'."
   (message "executing Ruby source code block")
+  (message "params=%S" params)
   (let* ((vars (org-babel-ref-variables params))
          (result-params (split-string (or (cdr (assoc :results params)) "")))
          (result-type (cond ((member "output" result-params) 'output)
@@ -147,13 +148,14 @@ last statement in BODY."
                (shell-command-on-region (point-min) (point-max) "ruby"))
              (with-temp-buffer (insert-file-contents tmp-file) (buffer-string))))))
     ;; comint session evaluation
-    (let ((full-body (mapconcat #'org-babel-chomp
-                                (list body org-babel-ruby-last-value-eval org-babel-ruby-eoe-indicator) "\n"))
-          (raw (org-babel-comint-with-output buffer org-babel-ruby-eoe-indicator t
-                 (insert full-body) (comint-send-input nil t)))
-          (results (cdr (member org-babel-ruby-eoe-indicator
-                                (reverse (mapcar #'org-babel-ruby-read-string
-                                                 (mapcar #'org-babel-trim raw)))))))
+    (message "session evaluation")
+    (let* ((full-body (mapconcat #'org-babel-chomp
+                                 (list body org-babel-ruby-last-value-eval org-babel-ruby-eoe-indicator) "\n"))
+           (raw (org-babel-comint-with-output buffer org-babel-ruby-eoe-indicator t
+                  (insert full-body) (comint-send-input nil t)))
+           (results (cdr (member org-babel-ruby-eoe-indicator
+                                 (reverse (mapcar #'org-babel-ruby-read-string
+                                                  (mapcar #'org-babel-trim raw)))))))
       (case result-type
         (output (mapconcat #'identity (reverse (cdr results)) "\n"))
         (value (car results))))))

+ 46 - 46
org-babel.org

@@ -2218,52 +2218,52 @@ org-babel functionality.
 of these tests may fail.
 
 #+TBLNAME: org-babel-tests
-| functionality           | block                      | arg |    expected |     results | pass                       |
-|-------------------------+----------------------------+-----+-------------+-------------+----------------------------|
-| basic evaluation        |                            |     |             |             | pass                       |
-|-------------------------+----------------------------+-----+-------------+-------------+----------------------------|
-| emacs lisp              | basic-elisp                |     |           5 |           5 | pass                       |
-| shell                   | basic-shell                |     |           6 |           6 | pass                       |
-| ruby                    | basic-ruby                 |     |   org-babel |   org-babel | pass                       |
-| python                  | basic-python               |     | hello world | hello world | pass                       |
-| R                       | basic-R                    |     |          13 |          13 | pass                       |
-|-------------------------+----------------------------+-----+-------------+-------------+----------------------------|
-| tables                  |                            |     |             |             | pass                       |
-|-------------------------+----------------------------+-----+-------------+-------------+----------------------------|
-| emacs lisp              | table-elisp                |     |           3 |           3 | pass                       |
-| ruby                    | table-ruby                 |     |       1-2-3 |       1-2-3 | pass                       |
-| python                  | table-python               |     |           5 |           5 | pass                       |
-| R                       | table-R                    |     |         3.5 |         3.5 | pass                       |
-|-------------------------+----------------------------+-----+-------------+-------------+----------------------------|
-| source block references |                            |     |             |             | pass                       |
-|-------------------------+----------------------------+-----+-------------+-------------+----------------------------|
-| all languages           | chained-ref-last           |     |       Array |       Array | pass                       |
-|-------------------------+----------------------------+-----+-------------+-------------+----------------------------|
-| source block functions  |                            |     |             |             | pass                       |
-|-------------------------+----------------------------+-----+-------------+-------------+----------------------------|
-| emacs lisp              | defun-fibb                 |     |       fibbd |       fibbd | pass                       |
-| run over                | Fibonacci                  |   0 |           1 |           1 | pass                       |
-| a                       | Fibonacci                  |   1 |           1 |           1 | pass                       |
-| variety                 | Fibonacci                  |   2 |           2 |           2 | pass                       |
-| of                      | Fibonacci                  |   3 |           3 |           3 | pass                       |
-| different               | Fibonacci                  |   4 |           5 |           5 | pass                       |
-| arguments               | Fibonacci                  |   5 |           8 |           8 | pass                       |
-|-------------------------+----------------------------+-----+-------------+-------------+----------------------------|
-| bugs and tasks          |                            |     |             |             | pass                       |
-|-------------------------+----------------------------+-----+-------------+-------------+----------------------------|
-| simple ruby arrays      | ruby-array-test            |     |           3 |           3 | pass                       |
-| R number evaluation     | bug-R-number-evaluation    |     |           2 |           2 | pass                       |
-| multi-line ruby blocks  | multi-line-ruby-test       |     |           2 |           2 | pass                       |
-| forcing vector results  | test-forced-vector-results |     |       Array |       Array | pass                       |
-|-------------------------+----------------------------+-----+-------------+-------------+----------------------------|
-| sessions                |                            |     |             |             | pass                       |
-|-------------------------+----------------------------+-----+-------------+-------------+----------------------------|
-| set ruby session        | set-ruby-session-var       |     |        :set |        :set | pass                       |
-| get from ruby session   | get-ruby-session-var       |     |           3 |             | expected "3" but was ""    |
-| set python session      | set-python-session-var     |     |         set |         set | pass                       |
-| get from python session | get-python-session-var     |     |           4 |             | expected "4" but was ""    |
-| set R session           | set-R-session-var          |     |         set |         set | pass                       |
-| get from R session      | get-R-session-var          |     |           5 |         nil | expected "5" but was "nil" |
+| functionality           | block                      | arg |    expected |     results | pass |
+|-------------------------+----------------------------+-----+-------------+-------------+------|
+| basic evaluation        |                            |     |             |             | pass |
+|-------------------------+----------------------------+-----+-------------+-------------+------|
+| emacs lisp              | basic-elisp                |     |           5 |           5 | pass |
+| shell                   | basic-shell                |     |           6 |           6 | pass |
+| ruby                    | basic-ruby                 |     |   org-babel |   org-babel | pass |
+| python                  | basic-python               |     | hello world | hello world | pass |
+| R                       | basic-R                    |     |          13 |          13 | pass |
+|-------------------------+----------------------------+-----+-------------+-------------+------|
+| tables                  |                            |     |             |             | pass |
+|-------------------------+----------------------------+-----+-------------+-------------+------|
+| emacs lisp              | table-elisp                |     |           3 |           3 | pass |
+| ruby                    | table-ruby                 |     |       1-2-3 |       1-2-3 | pass |
+| python                  | table-python               |     |           5 |           5 | pass |
+| R                       | table-R                    |     |         3.5 |         3.5 | pass |
+|-------------------------+----------------------------+-----+-------------+-------------+------|
+| source block references |                            |     |             |             | pass |
+|-------------------------+----------------------------+-----+-------------+-------------+------|
+| all languages           | chained-ref-last           |     |       Array |       Array | pass |
+|-------------------------+----------------------------+-----+-------------+-------------+------|
+| source block functions  |                            |     |             |             | pass |
+|-------------------------+----------------------------+-----+-------------+-------------+------|
+| emacs lisp              | defun-fibb                 |     |       fibbd |       fibbd | pass |
+| run over                | Fibonacci                  |   0 |           1 |           1 | pass |
+| a                       | Fibonacci                  |   1 |           1 |           1 | pass |
+| variety                 | Fibonacci                  |   2 |           2 |           2 | pass |
+| of                      | Fibonacci                  |   3 |           3 |           3 | pass |
+| different               | Fibonacci                  |   4 |           5 |           5 | pass |
+| arguments               | Fibonacci                  |   5 |           8 |           8 | pass |
+|-------------------------+----------------------------+-----+-------------+-------------+------|
+| bugs and tasks          |                            |     |             |             | pass |
+|-------------------------+----------------------------+-----+-------------+-------------+------|
+| simple ruby arrays      | ruby-array-test            |     |           3 |           3 | pass |
+| R number evaluation     | bug-R-number-evaluation    |     |           2 |           2 | pass |
+| multi-line ruby blocks  | multi-line-ruby-test       |     |           2 |           2 | pass |
+| forcing vector results  | test-forced-vector-results |     |       Array |       Array | pass |
+|-------------------------+----------------------------+-----+-------------+-------------+------|
+| sessions                |                            |     |             |             | pass |
+|-------------------------+----------------------------+-----+-------------+-------------+------|
+| set ruby session        | set-ruby-session-var       |     |        :set |        :set | pass |
+| get from ruby session   | get-ruby-session-var       |     |           3 |           3 | pass |
+| set python session      | set-python-session-var     |     |         set |         set | pass |
+| get from python session | get-python-session-var     |     |           4 |           4 | pass |
+| set R session           | set-R-session-var          |     |         set |         set | pass |
+| get from R session      | get-R-session-var          |     |           5 |           5 | pass |
 #+TBLFM: $5='(if (= (length $3) 1) (progn (message (format "running %S" '(sbe $2 (n $3)))) (sbe $2 (n $3))) (sbe $2))::$6='(if (string= $4 $5) "pass" (format "expected %S but was %S" $4 $5))
 
 ** basic tests