Как добавить промежуточное программное обеспечение для стойки в приложение rails из gem

Я работаю над обработчиком событий, чтобы сообщать об исключениях в удаленный API (по аналогии с newrelic агентом), и я не могу найти способ добавить свое промежуточное программное обеспечение в стойку, не сделав этого в файле environment.rb.

Я не хочу делать это в файле environment.rb, потому что я планирую превратить это в драгоценный камень, и я хотел бы минимизировать процесс установки.

Вот простое промежуточное ПО, которое я хочу добавить в свое приложение:

#/lib/response_timer.rb
class ResponseTimer
  def initialize(app)
    @app = app
  end

  def call(env)
    #do something here
    @app.call(env)
  end
end

единственный способ найти его - добавить это в мою среду cofig:

config.middleware.use "ResponseTimer"

Я работаю с рельсами чуть больше года, но это мой первый опыт работы со стойками и промежуточным ПО.

Любой совет приветствуется!

2 ответа

Решение

Gems могут настроить свои хост-приложения, предоставив Railtie.

Например, вот сокращенная версия того, как это делает гем BetterErrors:

module BetterErrors
  class Railtie < Rails::Railtie
    initializer "better_errors.configure_rails_initialization" do
      Rails.application.middleware.use BetterErrors::Middleware
    end
  end
end

http://rubylearning.com/blog/a-quick-introduction-to-rack/

для базового руководства по стойке ясное объяснение может решить вашу проблему

Другие вопросы по тегам