Как аннотировать 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, чтобы аннотировать его.
