Pull to refresh

Ruby Cross Reference

Reading time 1 min
Views 1.1K


Ruby, как известно, просто выглядит, но сложно работает. В особенности это относится к официальному интерпретатору, Ruby MRI: документация на многие детали реализации, например, на байткод или GC, отсутствует даже на японском.

Я попытался упростить исследование кода, открыв сайт Ruby Cross Reference по мотивам LXR. Кроме MRI, проиндекированы еще JRuby и Rubinius.

Итак, что же с ним можно делать:
  • Смотреть исходный код. Намного удобнее, чем скачивать и распаковывать архив; кроме того, RXR позволяет быстро переключаться между разными версиями одной реализации.
  • Искать вхождения идентификаторов. Для построения индекса используется ctags, отличающий объявление прототипа от реализации или макроса. Кроме того, в эту версию LXR добавлена базовая поддержка Ruby.
  • Искать в полнотекстовом индексе. Поиск идентификаторов, очевидно, чувствителен к регистру и не проверяет подстроки. Полнотекстовый поиск отлично его дополняет.

Весь исходный код обновляется и переиндексируется каждую ночь.

В данный момент RXR известны три версии MRI — 1.8.7, 1.9.2 и HEAD; для JRuby и Rubinius представлена только HEAD.
Tags:
Hubs:
+28
Comments 16
Comments Comments 16

Articles