O RubySonar é um indexador semântico para o Ruby, que faz uma análise interprocedural para inferir tipos. É uma das tecnologias subjacentes que alimenta o site de busca de código -SITE ORONTGRAPH.
O RubySonar é modelado após o PysoNar2, que faz uma análise semelhante para o Python e tem sido usado pelo SourceGraph e pelo Google. Para entender suas propriedades técnicas, consulte as postagens do meu blog:
mvn package
O RubySonar usa o intérprete irb para analisar o código Ruby, portanto, verifique se você o instalou e apontado pela variável do ambiente PATH .
O RubySonar é projetado principalmente como uma biblioteca para IDEs e outras ferramentas de desenvolvedor; portanto, sua interface pode não ser tão atraente quanto uma ferramenta do usuário final, mas para o seu entendimento dos recursos da biblioteca, um programa de demonstração razoavelmente bom foi criado.
Você pode construir um "navegador de código" simples do seu código Ruby com a seguinte linha de comando:
java -jar target/rubysonar-0.1-SNAPSHOT.jar /path/to/project ./html
Isso levará alguns minutos. Você deve encontrar alguns arquivos HTML interativos dentro do diretório HTML após esse processo.
Rubisonar - um indexador semântico avançado para rubi
Copyright (c) 2013-2019 Yin Wang
Redistribuição e uso em formulários de origem e binária, com ou sem modificação, são permitidos, desde que as seguintes condições sejam atendidas:
As redistribuições do código -fonte devem manter o aviso de direitos autorais acima, esta lista de condições e o seguinte aviso.
As redistribuições em formato binário devem reproduzir o aviso de direitos autorais acima, esta lista de condições e o seguinte aviso na documentação e/ou outros materiais fornecidos com a distribuição.
O nome do autor não pode ser usado para endossar ou promover produtos derivados deste software sem permissão prévia por escrito específica.
Este software é fornecido pelo autor `` como é '' e quaisquer garantias expressas ou implícitas, incluindo, entre outros, as garantias implícitas de comercialização e aptidão para uma finalidade estão se isoladas. 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 SUCH DANO.