„Wykonaliśmy testy A / B na MRI vs JRuby dla mikroserwisów, które napisaliśmy.
Potrzebuję mojego serwera lub dowolnego lokalnego programisty do używania określonej wersji JRuby lub MRI.
Przeczytałem Dokumenty Bundlera i pomyślałem, że rozumiem, jak używać silnika ruby do takiego użycia:
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
Jednak jeśli to zrobię $which ruby
Dostaję: .rvm/rubies/jruby-1.7.19/bin/ruby
a następnie uciekać bundle install
Dostaję:
Your Ruby engine is jruby, but your Gemfile specified ruby
W jaki sposób mogę korzystać z programu pakującego z platformami, aby określić wersję ruby specyficzną dla platformy, na której działa użytkownik / serwer?
Odpowiedzi:
1 dla odpowiedzi № 1jak z prądu Bundler
od tego czasu nie możesz tego zrobić :platforms
dotyczy tylko gem
deklaracje ... najbliższą rzeczą, jaką możesz uzyskać, jest logika decyzyjna „runtime”, na podstawie której Ruby ładuje 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