Как аннотировать Ruby код его результатами?

Обычно код на Ruby аннотируется результатами его исполнения с помощью комментария после соответствующего выражения. Например, в коде ниже показано, что присваивание порождает строку "Billy Bob", а также показан
результат слияния некоторых подстрок:

  str = "Billy" + " Bob"           # -> "Billy Bob"
  str[0,1] + str[2,1] + str[-2,2]  # -> "Blob"

Инструмент под названием xmp, написанный Готокеном (Gotoken) и доступный по адресу http://www.ruby-lang.org/en/raa-list.rhtml?name=xmp, аннотирует исходный код на Ruby результатами его исполнения именно таким образом.

Пользователи vim и emacs могут интегрировать xmp в свои редакторы, что очень удобно, если вы хотите послать письмо с аннотированным исходным кодом на Ruby. Установив xmp, пользователи Emacs могут добавить следующее в свой .emacs файл:

(defun ruby-xmp-region (reg-start reg-end)
  "Pipe the region through Ruby's xmp utility and replace the region with
   the result."
  (interactive "r")
  (shell-command-on-region reg-start reg-end
                           "ruby -r xmp -n -e 'xmp($_, "%l		# %r
")'"
                           t))
   
(global-set-key [(meta f10)] 'ruby-xmp-region)

Пользователи vim могут использовать следующий mapping:

map <M-F10> :!ruby -r xmp -n -e 'xmp($_, "\%l		# \%r
")'<CR>

В обоих случаях выделите кусок текста и нажмите Meta-F10, чтобы аннотировать его.

Вход для пользователей