Rubysonar est un indexer sémantique pour Ruby, qui fait une analyse interprocédurale pour déduire les types. C'est l'une des technologies sous-jacentes qui alimentent le site de recherche de code source SourceGraph.
RubySonar est modélisé après PysonAR2, qui effectue une analyse similaire pour Python et a été utilisé par SourceGraph et Google. Pour comprendre ses propriétés techniques, veuillez vous référer à mes articles de blog:
mvn package
RubySonar utilise l'interpréteur irb pour analyser le code Ruby, alors assurez-vous de l'avoir installé et pointé par la variable d'environnement PATH .
Rubysonar est principalement conçu comme une bibliothèque pour les IDE et autres outils de développeur, donc son interface peut ne pas être aussi attrayante qu'un outil d'utilisateur final, mais pour votre compréhension des capacités de la bibliothèque, un programme de démonstration raisonnablement agréable a été construit.
Vous pouvez créer un simple "navigateur de code" de votre code Ruby avec la ligne de commande suivante:
java -jar target/rubysonar-0.1-SNAPSHOT.jar /path/to/project ./html
Cela prendra quelques minutes. Vous devriez trouver des fichiers HTML interactifs dans le répertoire HTML après ce processus.
Rubysonar - Un indexer sémantique avancé pour Ruby
Copyright (C) 2013-2019 Yin Wang
La redistribution et l'utilisation dans les formulaires source et binaire, avec ou sans modification, sont autorisées à condition que les conditions suivantes soient remplies:
Les redistributions du code source doivent conserver l'avis de droit d'auteur ci-dessus, cette liste de conditions et l'avertissement suivant.
Les redistributions sous forme binaire doivent reproduire l'avis de droit d'auteur ci-dessus, cette liste de conditions et la clause de non-responsabilité suivante dans la documentation et / ou d'autres documents fournis avec la distribution.
Le nom de l'auteur ne peut pas être utilisé pour approuver ou promouvoir des produits dérivés de ce logiciel sans autorisation écrite préalable spécifique.
Ce logiciel est fourni par l'auteur `` tel qu'il est '' et toutes les garanties expresses ou implicites, y compris, mais sans s'y limiter, les garanties implicites de qualité marchande et d'adéquation à un objectif particulier sont déclinées. En aucun cas, l'auteur ne sera responsable de tout dommage direct, indirect, accessoire, spécial, exemplaire ou consécutif (y compris, mais sans s'y limiter De ces dégâts.