/ / bundler: określ wersję ruby ​​na podstawie platformy - ruby, bundler, jruby

bundler: określ wersję ruby ​​na podstawie platformy - ruby, bundler, jruby

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

jak 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