私のチームは、Rails と Java の開発者で構成され、JRuby On Rails アプリケーションで共同作業を行っています。Rails のユーザーは、純粋な Ruby インタープリターを使用してフロントエンド アプリケーションを開発することを好みます。Java 担当者はアプリケーションを Tomcat にデプロイし、それを Spring およびコア Java バックエンド サービスと統合します。
Railsフェローが純粋なRubyインタープリターを使用してプロジェクトを開発できるように、プロジェクトを実行しているRubyのバージョンを認識しています。
たとえば、データベース構成を調整します。
module MyWebApp
class Application < Rails::Application
def config.database_configuration
config = super
if defined? JRUBY_VERSION
config["development"]["adapter"]="jdbcsqlite3"
end
config
end
end
end
Gemfile についても同じです。
gem 'sqlite3'
if defined? JRUBY_VERSION
gem 'jdbc-sqlite3'
gem 'activerecord-jdbcsqlite3-adapter'
end
コア Java サービスのモックも作成します。
class DocumentServiceFactory
def build
if defined? JRUBY_VERSION
spring_context :document_service
else
mock :document_service
end
end
end
このソリューションは私たちにとってはうまくいきますが、Rails アプリケーションを Ruby と JRuby の両方に対応させるための一般的なパターン (またはプラグイン、gem、ライブラリなど) があるかどうか知りたいです。