/ / bundler: especifique la versión ruby ​​basada en plataforma - ruby, bundler, jruby

bundler: especifique la versión de ruby ​​basada en la plataforma - ruby, bundler, jruby

Estamos haciendo algunas pruebas A / B en MRI vs JRuby para un microservicio que hemos escrito.

Necesito que mi servidor o cualquier desarrollador local use una versión específica de JRuby o MRI.

He leído a través de Documentos de Bundler y pensé que entendía el uso de ruby ​​engine "s para ser usado así:

platforms :jruby do
ruby "1.9.3", engine: :jruby, engine_version: "1.7.19"
gem "bson"
end

platforms :ruby do
ruby "2.2.0", engine: :ruby, engine_version: "2.2.0"
gem "bson_ext"
end

Sin embargo si lo hago $which ruby Yo obtengo: .rvm/rubies/jruby-1.7.19/bin/ruby y luego correr bundle install Yo obtengo:

Your Ruby engine is jruby, but your Gemfile specified ruby

¿Cómo puedo usar Bundler con plataformas para especificar una versión de ruby ​​específica para la plataforma que ejecuta el usuario / servidor?

Respuestas

1 para la respuesta № 1

a partir de la corriente Bundler no se puede hacer eso, ya que :platforms solo se aplica a gem declaraciones ... lo más cercano que puede obtener es una lógica de decisión de "tiempo de ejecución" basada en la cual Ruby carga el Gemfile :

if defined? JRUBY_VERSION
ruby "1.9.3", engine: :jruby, engine_version: "1.7.19"
else
ruby "2.2.0", engine: :ruby, engine_version: "2.2.0"
end

platforms :jruby do
gem "bson"
end

platforms :ruby do
gem "bson_ext"
end