私のチームは、JRuby On Railsアプリケーションで共同作業するRailsとJava開発者で構成されています。 Railsの人々は、純粋なRubyインタプリタを使用してフロントエンドアプリケーションを開発することを好みます。 Javaの人々はアプリケーションをTomcatにデプロイし、それをSpringおよびコアJavaバックエンドサービスと統合します。JRuby On RailsアプリケーションをRailsとJavaの両方の開発者に適したパターンにする
純粋なRubyインタプリタを使用してRailsのフェローがプロジェクトを開発できるようにするために、どのバージョンのプロジェクトを実行しているのかを認識します。 Gemfileため
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
同じ:
class DocumentServiceFactory
def build
if defined? JRUBY_VERSION
spring_context :document_service
else
mock :document_service
end
end
end
このソリューションの作品:
gem 'sqlite3'
if defined? JRUBY_VERSION
gem 'jdbc-sqlite3'
gem 'activerecord-jdbcsqlite3-adapter'
end
は、我々はまた、コアJavaサービスをモック
は、例えば、私たちは、データベース構成を調整します私たちのためには、私は好奇心がある場合は、一般的なパターン(またはプラグイン、宝石、図書館など) RailsアプリケーションはRubyとJRubyの両方に対応していますか?
あなたはjavaとMRIの宝石を作ることができるので、宝石のレベルで処理する必要があります。 – Reactormonk
ええと...私はどのように宝石レベルでデータベースアダプターを変更することができますか分かりません。しかし、ええ、すべてのMRI/JRubyスイッチングロジックをgemに委譲することは、洗練されたソリューションになります。私はこのアプローチについていくつかの研究をします。提案ありがとう。 –