Dust Parece que puede ayudarlo a encontrar el código inútil e inútil, que parece que se adapta a lo que está buscando.
No conozco ninguna otra herramienta similar.
Este problema es mucho más difícil de abordar en ruby que en java; notará que todas las herramientas java se autodenominan como "análisis estático" del código.
El análisis estático de código Ruby a menudo no es posible, porque no hay nada estático que se puede analizar (métodos a menudo se crean en tiempo de ejecución, etc.)
En cualquier caso, algunas de estas cosas son innecesarias en ruby porque el lenguaje los construye. Por ejemplo, no necesita un estándar de codificación para exigir que sus clases sean todas NamedLikeThis
porque el código no funcionará si no lo están.
P.S. I tiene para agregar la exención de responsabilidad estándar que ese tipo de herramientas a menudo puede ser una pista falsa. Puede pasar todo el día haciendo que su código se adhiera a lo que la herramienta cree que debería ser y termine con más errores de los que comenzó.
En mi humilde opinión, la mejor solución es escribir su código con fluidez para que pueda leerlo más fácilmente. Ninguna cantidad de análisis estático va a ser tan buena como un código de lectura humana que indique claramente lo que debe hacer. Ser capaz de hacer esto es donde el rubí está a años luz de muchos otros idiomas. Personalmente, recomendaría que apunte sus esfuerzos a aprender a escribir con más fluidez y a educar a su equipo sobre estas cosas, que pasar tiempo en análisis estático.
Lo que está describiendo es un [linter] (http://en.wikipedia.org/wiki/Lint_ (software)). – meagar
Nunca escuché ese término antes, y el enlace al que hizo referencia usa "herramientas similares a pelusas" y nunca menciona la palabra "linter". La mayoría de las veces los escucho descritos como "herramientas de análisis estático". –
"Linter" y "linting" son términos bastante [comunes y autoexplicativos] (https://www.google.ca/search?q=ruby+linter&aq=f&oq=ruby+linter&aqs=chrome.0.57j62j64.2072&sourceid= chrome & ie = UTF-8 # hl = es & sclient = psy-ab & q = código + linter & oq = código + linter & gs_l = serp.3..0j0i30j0i5i30j0i7i5i30.8171.8712.0.8837.5.5.0.0.0.0.109.455.3j2.5.0 ... 0.0 .. .1c.1.7.psy-ab.YB_cRC0Tyy4 & pbx = 1 & bav = on.2, or.r_cp.r_qf. & Bvm = bv.44158598, d.aWM & fp = 458327f821c3aced & biw = 1154 & bih = 1050). – meagar