Rubysonar adalah pengindeks semantik untuk Ruby, yang melakukan analisis interprocedural untuk menyimpulkan jenis. Ini adalah salah satu teknologi yang mendasari yang memberi kekuatan pada Situs Pencarian Kode SourceGraph.
Rubysonar dimodelkan setelah Pysonar2, yang melakukan analisis serupa untuk Python dan telah digunakan oleh SourceGraph dan Google. Untuk memahami sifat teknisnya, silakan merujuk ke posting blog saya:
mvn package
Rubysonar menggunakan interpreter irb untuk menguraikan kode ruby, jadi pastikan Anda menginstalnya dan ditunjuk oleh variabel lingkungan PATH .
Rubysonar terutama dirancang sebagai perpustakaan untuk IDE dan alat pengembang lainnya, sehingga antarmuka mungkin tidak sebanding dengan alat pengguna akhir, tetapi untuk pemahaman Anda tentang kemampuan perpustakaan, program demo yang cukup bagus telah dibangun.
Anda dapat membangun "browser kode" sederhana dari kode ruby Anda dengan baris perintah berikut:
java -jar target/rubysonar-0.1-SNAPSHOT.jar /path/to/project ./html
Ini akan memakan waktu beberapa menit. Anda harus menemukan beberapa file HTML interaktif di dalam direktori HTML setelah proses ini.
Rubysonar - Pengindeks Semantik Tingkat Lanjut untuk Ruby
Hak Cipta (C) 2013-2019 Yin Wang
Redistribusi dan penggunaan dalam bentuk sumber dan biner, dengan atau tanpa modifikasi, diizinkan dengan ketentuan bahwa kondisi berikut dipenuhi:
Redistribusi kode sumber harus mempertahankan pemberitahuan hak cipta di atas, daftar kondisi ini dan penafian berikut.
Redistribusi dalam bentuk biner harus mereproduksi pemberitahuan hak cipta di atas, daftar kondisi ini dan penafian berikut dalam dokumentasi dan/atau bahan lain yang disediakan dengan distribusi.
Nama penulis tidak dapat digunakan untuk mendukung atau mempromosikan produk yang berasal dari perangkat lunak ini tanpa izin tertulis sebelumnya.
Perangkat lunak ini disediakan oleh penulis `` sebagaimana adanya '' dan setiap jaminan tersirat atau tersirat, termasuk, tetapi tidak terbatas pada, jaminan tersirat dari dapat diperjualbelikan dan kebugaran untuk tujuan tertentu ditolak. Dalam hal apa pun penulis tidak akan bertanggung jawab atas kerusakan langsung, tidak langsung, insidental, khusus, teladan, atau konsekuensial (termasuk, tetapi tidak terbatas pada, pengadaan barang atau layanan pengganti; hilangnya penggunaan, data, atau keuntungan; atau gangguan bisnis yang disebabkan dan hal yang terjadi pada hal -hal yang terjadi, baik dalam hal ini, apakah ada dalam hal yang terjadi, baik dalam hal ini, apakah ada kemungkinan, atau tort yang terjadi pada kontrak, atau tort. KERUSAKAN.