Код в вашем инициализаторе - это просто код ... вы можете попросить своего пользователя gem пройти через набор параметров конфигурации и сделать так, чтобы зависимости config.gem загружались только при наличии этих параметров. Один из способов сделать это - настроить глобальные значения в config environemtn.
например, в config / environment.rb:
CSV_EXPORTS = XML_EXPORTS = true
PDF_EXPORTS = false
Тогда в своем собственном камне вы бы написали:
config.gem 'fastercsv' if defined?(CSV_EXPORTS)
config.gem 'nokogiri' if defined?(XML_EXPORTS)
if defined?(PDF_EXPORTS)
config.gem 'prawn'
config.gem 'prawn-layout'
end
# etc
использовать "определен?" так что если они вообще не настроены, драгоценные камни не будут пытаться загружаться. Это также означает, что вы можете использовать их по умолчанию.