Un compilador que lee aplicaciones Rails en Ruby y genera proyectos independientes en otros lenguajes, como Rust, Go, TypeScript y Elixir, o un binario nativo de Spinel.
rigortype/rigor
Analizador estático para Ruby que infiere tipos a partir del código sin anotaciones y busca reportar solo errores concluyentes, como métodos no definidos y receptores nil.
- Estrellas
- 107
- Forks
- 1
- Issues abiertos
- 538
- Último commit
- hace 11 horas
¿Qué es?
Rigor es una herramienta de análisis estático para Ruby que detecta errores como llamadas a métodos no definidos, cantidad incorrecta de argumentos, receptores que podrían ser nil en una ruta de ejecución activa, ramas inalcanzables y condiciones que siempre son truthy. Analiza el código con Prism y ejecuta un motor de inferencia sensible al flujo que sigue los valores que producen las expresiones, no solo sus clases. Los mensajes incluyen el valor calculado; por ejemplo, informan de un método no definido en la cadena "hello-world" en vez de en String.
No se necesitan anotaciones ni dependencias en tiempo de ejecución para empezar. Las firmas RBS existentes en sig/ se leen como fuente de tipos, y rigor sig-gen puede generar RBS a partir de los resultados de inferencia. El proyecto prioriza una política de cero falsos positivos: solo emite diagnósticos cuando el tipo del receptor se conoce estáticamente y las pruebas son concluyentes. Hay plugins para Rails, RSpec, Sidekiq, Sinatra, dry-rb y otras gemas, y rigor-sorbet incorpora firmas de Sorbet.
La herramienta se instala globalmente como la gema rigortype y ofrece comandos para revisar el código, anotar tipos en línea, clasificar diagnósticos y generar firmas. Entre los formatos de salida para CI se incluyen las anotaciones de GitHub, GitLab Code Quality, SARIF, JUnit y otros.
Funciones clave
- 01Infiere tipos a nivel de valor a partir de código Ruby sin anotaciones mediante análisis sensible al flujo.
- 02Detecta métodos no definidos, cantidades incorrectas de argumentos y receptores que podrían ser nil.
- 03Lee firmas RBS existentes y puede generar RBS a partir de los resultados de inferencia.
- 04Ofrece plugins para Rails, RSpec, Sidekiq, Sinatra y otras gemas de uso común.
- 05Genera formatos de salida nativos de CI, como las anotaciones de GitHub y SARIF.
Casos de uso
- Detectar errores tipográficos y llamadas a métodos no definidos en una base de código Ruby existente, sin añadir anotaciones de tipos.
- Añadir una comprobación estática a CI con una línea base que se va corrigiendo con el tiempo.
- Generar firmas RBS para código sin tipar a partir de los tipos inferidos.
- Ejecutar comprobaciones de tipos en una aplicación Rails con plugins compatibles con el framework.
Inicio rápido
- 1
Instala Rigor globalmente en Ruby 4.0 con mise
mise use -g ruby@4.0 gem:rigortype - 2
Ejecuta Rigor sobre tu código para encontrar errores
rigor check app lib
Antes de usarlo
- Versión en una fase temprana de evaluación (0.4.x); el alcance de compatibilidad aún puede cambiar antes de la v1.0.0.
- Lo mantiene una sola persona con financiación limitada, por lo que el ritmo de desarrollo puede variar.
- Analizador exclusivo para Ruby; no comprueba otros lenguajes.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es rigor?
- Analizador estático para Ruby que infiere tipos a partir del código sin anotaciones y busca reportar solo errores concluyentes, como métodos no definidos y receptores nil. Rigor es una herramienta de análisis estático para Ruby que detecta errores como llamadas a métodos no definidos, cantidad incorrecta de argumentos, receptores que podrían ser nil en una ruta de ejecución activa, ramas inalcanzables y condiciones que siempre son truthy. Analiza el código con Prism y ejecuta un motor de inferencia sensible al flujo que sigue los valores que producen las expresiones, no solo sus clases. Los mensajes incluyen el valor calculado; por ejemplo, informan de un método no definido en la cadena "hello-world" en vez de en String.
- ¿rigor es gratuito? ¿Qué licencia tiene?
- rigor es open source bajo la licencia MPL-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿rigor sigue mantenido?
- Mantenimiento activo. El último commit de rigor fue el 6 nov 2026.
- ¿Para qué puedo usar rigor?
- Detectar errores tipográficos y llamadas a métodos no definidos en una base de código Ruby existente, sin añadir anotaciones de tipos. Añadir una comprobación estática a CI con una línea base que se va corrigiendo con el tiempo. Generar firmas RBS para código sin tipar a partir de los tipos inferidos. Ejecutar comprobaciones de tipos en una aplicación Rails con plugins compatibles con el framework.
- ¿Cómo se instala rigor?
- Instala Rigor globalmente en Ruby 4.0 con mise: mise use -g ruby@4.0 gem:rigortype Ejecuta Rigor sobre tu código para encontrar errores: rigor check app lib
- ¿Dónde consigo rigor?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/rigortype/rigor
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Biblioteca de análisis estático de Python para autocompletar, ir a la definición, refactorizar y buscar código, usada principalmente por plugins de editores.
Verificador estático de tipos para Python basado en estándares, con herramienta de línea de comandos y extensión para Visual Studio Code, diseñado para grandes bases de código.
Herramienta de análisis estático para PHP que detecta errores en el código sin ejecutarlo.
Un plugin de pytest que ejecuta el comprobador estático de tipos mypy en los archivos fuente durante las pruebas de pytest.
Analizador estático y formateador de código Ruby que aplica las reglas de la Ruby Style Guide de la comunidad y corrige automáticamente muchas infracciones.