У меня есть модульное приложение Sinatra, где я использую
run Rack::URLMap
для добавления различных сервисов, где каждый сервис является Sinatra::Base
Я добавил промежуточное ПО в один из сервисов, использующих метод settings
. Похоже, что промежуточное ПО NewRelic для стоек не раскрывает этот метод.
class MyService < Sinatra::Base
configure do
set :optional_auth, [
{ method: :get, path: ''},
{ method: :get, path: '/:id'},
{ method: :get, path: '/:id/attachments'},
{ method: :get, path: '/:id/comments'}
]
mime_type :json, 'application/json'
use Rack::PostBodyContentTypeParser
use MyMiddleware
end
get '/' ....
Локально все работает нормально, однако при развертывании кажется, что MyMiddleware добавляется после NewRelic::Rack, поэтому, когда вызывается промежуточное ПО, @app больше не является MyService, это NewRelic::Rack без открытого метода settings
.
Кто-нибудь еще испытал это? Я запускаю приложение с bundle exec puma