Мы пишем драгоценный камень, который включает в себя несколько общих драгоценных камней, используемых в нескольких наших приложениях.Мы хотим иметь возможность иметь какой-то тип конфигурации, требующий или не требующий определенных драгоценных камней.Но application.rb
или enviroment.rb/*rb
загружается после загрузки гемов.Поэтому мы не можем установить там конфиг.Следующий способ работает, но это не очень хорошая идея, и мне было интересно, есть ли более чистый способ сделать это
bin / rails.(В приложении-потребителе)
#!/usr/bin/env ruby
DISABLE_TRANSPORT = true
APP_PATH = File.expand_path('../config/application', __dir__)
require_relative '../config/boot'
require 'rails/commands'
Gemfile (В приложении-потребителе)
gem 'fruit_chain'
fruit_chain / lib / fruit_chain.rb (Наш драгоценный камень)
require analytic
require transport unless defined?(DISABLE_TRANSPORT) && DISABLE_TRANSPORT
require marketing
...
module FruitChain
end