W zeszłym roku przenieśliśmy dużą aplikację Railsową do JRuby i była to zaskakująca ilość pracy. To prawda, że częściowo było to związane z tym, że aplikacja była raczej źle napisana i miała dużo starszego kodu, ale nadal. Na wypadek, gdybyście się zastanawiali:większość naszych problemów wynikała z używanych przez nas klejnotów, które czasami zależały m.in. FFI, które w tamtym czasie nie działało poprawnie z JRuby. Port do Rubiniusa, który zrobiłem nieco później, wydawał się o wiele mniej bolesny, ale został porzucony na rzecz pozostania przy MRI.
W przypadku pliku Gemfile dostępna jest platform
opcja, której możesz użyć. Oto przykład z dokumentacji Bundlera:
gem "weakling", :platforms => :jruby
gem "ruby-debug", :platforms => :mri_18
gem "nokogiri", :platforms => [:mri_18, :jruby]
Ma również formę blokową:
platforms :jruby do
gem "foo"
end
Obie formy działają dobrze, ponieważ
Jako klejnot dla MySQL użyłbym trafnie nazwanego mysql
, wydaje się, że istnieje jdbc-mysql
dla JRuby.