Sha256: 9b8cb449d90f2e1252e2271458cdd3999b290a9f103cd11f9b101cc51dafd4d1

Contents?: true

Size: 1.63 KB

Versions: 4

Compression:

Stored size: 1.63 KB

Contents

module RooOnRails
  module Railties
    class HTTP < Rails::Railtie
      initializer 'roo_on_rails.http' do |app|
        Rails.logger.with initializer: 'roo_on_rails.http' do |log|
          log.debug 'loading'

          require 'rack/timeout/base'
          require 'rack/ssl-enforcer'
          require 'roo_on_rails/rack/safe_timeouts'

          ::Rack::Timeout::Logger.level = ::Logger::WARN

          app.config.middleware.insert_before(
            ::Rack::Runtime,
            ::Rack::Timeout,
            service_timeout: ENV.fetch('RACK_SERVICE_TIMEOUT', 15).to_i,
            wait_timeout: ENV.fetch('RACK_WAIT_TIMEOUT', 30).to_i
          )

          middleware_to_insert_before = Rails::VERSION::MAJOR < 4 ? ::ActionDispatch::Cookies : ::Rack::Head

          # This needs to be inserted low in the stack, before Rails returns the
          # thread-current connection to the pool.
          if defined?(ActiveRecord)
            app.config.middleware.insert_before(
              middleware_to_insert_before,
              RooOnRails::Rack::SafeTimeouts
            )
          end

          if ENV.fetch('ROO_ON_RAILS_RACK_DEFLATE', 'YES').to_s =~ /\A(YES|TRUE|ON|1)\Z/i
            app.config.middleware.use ::Rack::Deflater
          end

          # Don't use SslEnforcer in test environment as it breaks Capybara
          unless Rails.env.test? ||
                 ENV.fetch('ROO_ON_RAILS_DISABLE_SSL_ENFORCEMENT', '') =~ /\A(YES|TRUE|ON|1)\Z/i
            app.config.middleware.insert_before(
              middleware_to_insert_before,
              ::Rack::SslEnforcer
            )
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
roo_on_rails-2.0.0.pre.pre.2 lib/roo_on_rails/railties/http.rb
roo_on_rails-2.0.0.pre.pre.1 lib/roo_on_rails/railties/http.rb
roo_on_rails-1.22.0 lib/roo_on_rails/railties/http.rb
roo_on_rails-1.21.0 lib/roo_on_rails/railties/http.rb