Averiguar qué aplicación de Gems Rails no utiliza

Trabajando en una aplicación que tiene casi 200 gems. ¿Alguien ha descubierto cómo aislar gems que no se usan para que se puedan sacar de la mezcla?

Debido a la naturaleza dinámica de Ruby, no es posible saber con certeza si una gem se usa o no sin una prueba. Aunque es una mala práctica cargarlos en ad-hoc sin una buena razón, es posible requerir una gem en cualquier punto de la ejecución del progtwig. No necesitan ser cargados por adelantado.

Aunque podría haber ventajas en cargar gems a pedido, por ejemplo, mantener una huella de memoria más baja y reducir los tiempos de lanzamiento, hace que sea difícil determinar si o dónde se usan realmente.

No siempre hay una correlación entre un nombre de gem y los métodos que utiliza. Si bien muchos tienen un espacio de nombres que es fácil de usar, otros simplemente agregan métodos a las clases existentes, lo que puede complicar su seguimiento, especialmente si llegan a parchear métodos antiguos con otros que tienen el mismo nombre.

Si puede realizar una gran parte de la aplicación a través de su unidad, pruebas funcionales y de integración, podría ser posible usar ruby-prof para al menos tener una idea de qué gems se utilizan. Eso podría facilitar la identificación de los candidatos para la eliminación.