Движок Rails 2.3.5 (плагин) как указать требования к гем - PullRequest
3 голосов
/ 19 июля 2010

При создании движка rails в 2.3.5 в качестве плагина, как можно установить зависимости gem внутри плагина, не импортируя их в среду хост-приложений.rb?

По сути, мне нужно иметь возможность вызывать "config.gem" после того, как Initializer.run был вызван environment.rb, так как плагин не был загружен, когда блок config находится в области действия.

Не использует упаковщик для этого приложения.

1 Ответ

0 голосов
/ 20 июля 2010

Я думаю, что вы можете запустить Rails Initializer в вашем init.rb, например, просто:

Rails::Initializer.run do |config|
  config.gem 'fastercsv', :version => '1.4.0'    
  config.gem 'liquid', :version => '2.0.0'
end

Если поместить его в init.rb не вызывает его, у одного из наших движков есть загрузочный файл, который просто содержит класс с методом, который содержит те же вещи инициализатора, что и выше. например:

class MyBootClass
  def self.boot_up  
    Rails::Initializer.run do |config|
      config.gem 'fastercsv', :version => '1.4.0'    
      config.gem 'liquid', :version => '2.0.0'
    end
  end
end

Загрузочный файл требуется в environment.rb, а метод класса называется, например,

require "#{File.dirname(__FILE__)}/../vendor/plugins/.../bootfile.rb"
MyBootClass.boot_up
...