Моя команда состоит из Rails и Java-разработчиков, работающих вместе над приложением JRuby On Rails. Rails люди предпочитают разрабатывать front-end приложение, используя чистый интерпретатор Ruby. Java-пользователи развертывают приложение в Tomcat и интегрируют его с Spring и базовыми базовыми службами Java.Шаблоны для создания приложений JRuby On Rails, подходящих как для Rails, так и для разработчиков Java
Мы узнаем, какая версия Ruby выполняет проект, чтобы ребята Rails могли разрабатывать его с использованием чистого интерпретатора 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-friendly?
Вы можете сделать камни java и MRI, поэтому его нужно обрабатывать на уровне драгоценных камней imo. – Reactormonk
Хмммм ... Я не уверен, как изменить адаптер базы данных на уровне gem. Но да, делегирование всей логики переключения MRI/JRuby в драгоценные камни было бы изящным решением. Я сделаю некоторые исследования по этому подходу. Спасибо за предложение. –