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 № 1a 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