Рельсы 5 Требуется зависимый драгоценный камень условно в драгоценном камне - PullRequest
0 голосов
/ 17 октября 2018

Мы пишем драгоценный камень, который включает в себя несколько общих драгоценных камней, используемых в нескольких наших приложениях.Мы хотим иметь возможность иметь какой-то тип конфигурации, требующий или не требующий определенных драгоценных камней.Но 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

1 Ответ

0 голосов
/ 17 октября 2018

Я не уверен, что понимаю, что именно вы хотите ... однако, использование require: false в Gemfile может вам помочь?

# Gemfile

gem 'my_super_gem', require: false

А в инициализаторе вы require их:

# config/initializer/fruit_chain.rb

require 'my_super_gem'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...