Как добавить промежуточное программное обеспечение для стойки в приложение 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/
для базового руководства по стойке ясное объяснение может решить вашу проблему