Rubysonar является семантическим индексером для Ruby, который делает межпроцедурный анализ, чтобы выводить типы. Это одна из базовых технологий, которая поддерживает исходный граф Сайта Кодекса.
Rubysonar моделируется после Pysonar2, который проводит аналогичный анализ для Python и использовался SourceGraph и Google. Чтобы понять его технические свойства, пожалуйста, обратитесь к моим сообщениям в блоге:
mvn package
Rubysonar использует интерпретатор irb для анализа кода Ruby, поэтому, пожалуйста, убедитесь, что вы установили его и указали переменную среды PATH .
Rubysonar в основном разработана как библиотека для IDES и других инструментов разработчиков, поэтому его интерфейс может быть не таким привлекательным, как инструмент конечного пользователя, но для вашего понимания возможностей библиотеки была создана достаточно хорошая демонстрационная программа.
Вы можете построить простой «кодовый браузер» вашего кода Ruby со следующей командной строкой:
java -jar target/rubysonar-0.1-SNAPSHOT.jar /path/to/project ./html
Это займет несколько минут. Вы должны найти некоторые интерактивные HTML -файлы в каталоге HTML после этого процесса.
Rubysonar - продвинутый семантический индексатор для Ruby
Copyright (C) 2013-2019 Инь Ван
Перераспределение и использование в исходных и бинарных формах, с изменением или без них разрешены при условии, что следующие условия выполняются:
Перераспределение исходного кода должно сохранить вышеуказанное уведомление об авторском праве, этот список условий и следующее отказ от ответственности.
Перераспределение в двоичной форме должно воспроизводить вышеуказанное уведомление об авторском праве, этот список условий и следующее отказ от ответственности в документации и/или других материалах, предоставленных при распределении.
Название автора не может использоваться для поддержки или продвижения продуктов, полученных из этого программного обеспечения, без конкретного предварительного письменного разрешения.
Это программное обеспечение предоставляется автором «как есть», и любые явные или подразумеваемые гарантии, включая, помимо прочего, подразумеваемые гарантии товарной пригодности и пригодности для определенной цели, отказались. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF Такой урон.