class Rails::Application::DefaultRailsFourMiddlewareStack
Attributes
app[R]
config[R]
paths[R]
Public Class Methods
new(app, config, paths)
click to toggle source
# File lib/rails-api/application/default_rails_four_middleware_stack.rb, line 6 def initialize(app, config, paths) @app = app @config = config @paths = paths end
Public Instance Methods
build_stack()
click to toggle source
# File lib/rails-api/application/default_rails_four_middleware_stack.rb, line 12 def build_stack ActionDispatch::MiddlewareStack.new.tap do |middleware| if rack_cache = load_rack_cache require "action_dispatch/http/rack_cache" middleware.use ::Rack::Cache, rack_cache end if config.force_ssl middleware.use ::ActionDispatch::SSL, config.ssl_options end if config.action_dispatch.x_sendfile_header.present? middleware.use ::Rack::Sendfile, config.action_dispatch.x_sendfile_header end if config.serve_static_assets middleware.use ::ActionDispatch::Static, paths["public"].first, config.static_cache_control end middleware.use ::Rack::Lock unless allow_concurrency? middleware.use ::Rack::Runtime middleware.use ::Rack::MethodOverride unless config.api_only middleware.use ::ActionDispatch::RequestId # Must come after Rack::MethodOverride to properly log overridden methods middleware.use ::Rails::Rack::Logger, config.log_tags middleware.use ::ActionDispatch::ShowExceptions, show_exceptions_app middleware.use ::ActionDispatch::DebugExceptions, app middleware.use ::ActionDispatch::RemoteIp, config.action_dispatch.ip_spoofing_check, config.action_dispatch.trusted_proxies unless config.cache_classes middleware.use ::ActionDispatch::Reloader, lambda { reload_dependencies? } end middleware.use ::ActionDispatch::Callbacks middleware.use ::ActionDispatch::Cookies unless config.api_only if !config.api_only && config.session_store if config.force_ssl && !config.session_options.key?(:secure) config.session_options[:secure] = true end middleware.use config.session_store, config.session_options middleware.use ::ActionDispatch::Flash end middleware.use ::ActionDispatch::ParamsParser middleware.use ::Rack::Head middleware.use ::Rack::ConditionalGet middleware.use ::Rack::ETag, "no-cache" end end
Private Instance Methods
allow_concurrency?()
click to toggle source
# File lib/rails-api/application/default_rails_four_middleware_stack.rb, line 70 def allow_concurrency? config.allow_concurrency.nil? ? config.cache_classes : config.allow_concurrency end
load_rack_cache()
click to toggle source
# File lib/rails-api/application/default_rails_four_middleware_stack.rb, line 74 def load_rack_cache rack_cache = config.action_dispatch.rack_cache return unless rack_cache begin require 'rack/cache' rescue LoadError => error error.message << ' Be sure to add rack-cache to your Gemfile' raise end if rack_cache == true { metastore: "rails:/", entitystore: "rails:/", verbose: false } else rack_cache end end
reload_dependencies?()
click to toggle source
# File lib/rails-api/application/default_rails_four_middleware_stack.rb, line 66 def reload_dependencies? config.reload_classes_only_on_change != true || app.reloaders.map(&:updated?).any? end
show_exceptions_app()
click to toggle source
# File lib/rails-api/application/default_rails_four_middleware_stack.rb, line 96 def show_exceptions_app config.exceptions_app || ActionDispatch::PublicExceptions.new(Rails.public_path) end