discourse/config/initializers/200-first_middlewares.rb
Sam Saffron 136a545653
DEV: upgrade to Rails 6.0.3
Upgrades Rails to latest, this version has better compatibility
with Ruby 2.7

During the upgrade we needed a new cleaner mechanism for configuring
message bus.

All tests are green.

If anything weird pops up please revert.
2020-05-07 15:53:40 +10:00

33 lines
1.2 KiB
Ruby

# frozen_string_literal: true
# we want MesageBus to be close to the front
# this is important cause the vast majority of web requests go to it
# this allows us to avoid full middleware crawls each time
#
# We aren't manipulating the middleware stack directly because of
# https://github.com/rails/rails/pull/27936
Rails.configuration.middleware.unshift(MessageBus::Rack::Middleware)
# no reason to track this in development, that is 300+ redis calls saved per
# page view (we serve all assets out of thin in development)
if Rails.env != 'development' || ENV['TRACK_REQUESTS']
require 'middleware/request_tracker'
Rails.configuration.middleware.unshift Middleware::RequestTracker
if GlobalSetting.enable_performance_http_headers
MethodProfiler.ensure_discourse_instrumentation!
end
end
if Rails.configuration.multisite
# Multisite needs to be first, because the request tracker and message bus
# rely on it
session_operations = Rails::Configuration::MiddlewareStackProxy.new([
[:delete, RailsMultisite::Middleware],
[:unshift, [RailsMultisite::Middleware, RailsMultisite::DiscoursePatches.config]],
])
Rails.configuration.middleware = Rails.configuration.middleware + session_operations
end