Así que estoy desarrollando un Sinatra para Windows y Linux. El problema es que estoy usando Thin en lugar de Webrick y eventmachine para Windows solo funciona con una versión preliminar, mientras que Linux usa la última versión estable. en el Gemfile que por supuesto no se puede incluir la misma joya con diferentes versiones de este modo:utilizando el paquete para cargar diferentes versiones de gemas para diferentes plataformas
gem "eventmachine", "~> 1.0.0.beta.4.1", :group => :development_win
gem "eventmachine", group => :development_linux
gem "thin
Me preguntaba si había una manera de solucionar este problema, tal vez usando una Gemfile para las ventanas y uno Gemfile para Linux, lo sería el comando para cargar uno o el otro.
Alternativamente, hay una manera de administrar Git Gef para dos plataformas diferentes, tal vez a través de una rama para el archivo (no sé si eso es posible por lo que he leído de las ramas de git).
hmm, la primera solución arroja el mismo error acerca de tener dos gemas especificadas en el archivo gem. La declaración condicional funciona bien. – indigo0086
Y el segundo enfoque no es válido, ya que almacena una u otra versión de gema en 'Gemfile.lock'. No puede almacenar ambos. Por lo tanto, si prepara el 'Gemfile.lock' en un equipo de desarrollo de Win32 y luego lo implementa en Linux, obtendrá la misma versión incorrecta. Por lo tanto, todavía estoy buscando una solución válida. –
El enfoque de plataforma funciona bien siempre que solo se necesiten gemas diferentes (nombradas) para diferentes plataformas, incluso es posible confirmar Gemfile.lock y mantenerlo estable (a diferencia del enfoque if-else) – prusswan