Si se encuentra en una situación en la que las gemas se utilizan en diferentes proyectos o al menos no al mismo tiempo, puede usar la función gemset de RVM como solución alternativa. Recientemente tuve una incompatibilidad de gemas similar a la tuya y eso es lo que usé.
Si ha instalado RVM, hacer esto:
rvm gemset create gemset_name_here
rvm gemset use gemset_name_here
Así que lo que estás haciendo es crear un entorno joya que es totalmente fresco y desde cero sin dejar de ser capaz de volver a las gemas que estaba trabajando con antes en cualquier momento. La primera línea crea un nuevo gemset y la segunda línea le dice a RVM que empiece a usarlo.
En este punto necesitarás ejecutar bundle install
o rastrillar o lo que sea que estés usando para obtener las gemas que necesitas, pero esto debería solucionar el problema.
De modo que cuando usa gema 1 con dependencia 1, usa el gemset que tiene la versión requerida. Luego, cuando utilizas la gema 2 con la dependencia 2, cambias al gemset que tiene eso.
Ahora, si ambas gemas son parte de un proyecto más grande, esto no será factible y lo más probable es que necesite editar el origen de la gema para ejecutar la nueva versión de la dependencia como dijo @BaroqueBobcat. En muchos casos, esto es bastante fácil. Los desarrolladores de Ruby tienden a ser muy geniales para hacer que su código sea fácil de entender.
¿Qué gemas son conflictivas? – BaroqueBobcat
Gema de Twitter (requiere faraday 0.6.1) Gema de Groupon2 (requiere faraday 0.5.7). – ericalli