Class: ActionController::MiddlewareStack
| Relationships & Source Files | |
| Namespace Children | |
|
Classes:
| |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
|
|
|
Instance Chain:
|
|
| Inherits: |
ActionDispatch::MiddlewareStack
|
| Defined in: | actionpack/lib/action_controller/metal.rb |
Overview
Extend ActionDispatch middleware stack to make it aware of options allowing the following syntax in controllers:
class PostsController < ApplicationController
use AuthenticationMiddleware, except: [:index, :show]
end
Constant Summary
-
EXCLUDE =
# File 'actionpack/lib/action_controller/metal.rb', line 41->(list, action) { !list.include? action }
-
INCLUDE =
# File 'actionpack/lib/action_controller/metal.rb', line 40->(list, action) { list.include? action }
-
NULL =
# File 'actionpack/lib/action_controller/metal.rb', line 42->(list, action) { true }
Class Method Summary
::ActionDispatch::MiddlewareStack - Inherited
Instance Attribute Summary
::ActionDispatch::MiddlewareStack - Inherited
::Enumerable - Included
| #many? | Returns |
Instance Method Summary
::ActionDispatch::MiddlewareStack - Inherited
| #[], #build, | |
| #delete | Deletes a middleware from the middleware stack. |
| #delete! | Deletes a middleware from the middleware stack. |
| #each, #initialize_copy, #insert, #insert_after, | |
| #insert_before | Alias for ActionDispatch::MiddlewareStack#insert. |
| #last, #move, #move_after, | |
| #move_before | Alias for ActionDispatch::MiddlewareStack#move. |
| #size, #swap, #unshift, #use, #assert_index, #build_middleware, #index_of | |
::Enumerable - Included
| #compact_blank | Returns a new |
| #exclude? | The negative of the |
| #excluding | Returns a copy of the enumerable excluding the specified elements. |
| #in_order_of | Returns a new |
| #including | Returns a new array that includes the passed elements. |
| #index_by | Convert an enumerable to a hash, using the block result as the key and the element as the value. |
| #index_with | Convert an enumerable to a hash, using the element as the key and the block result as the value. |
| #maximum | Calculates the maximum from the extracted elements. |
| #minimum | Calculates the minimum from the extracted elements. |
| #pick | Extract the given key from the first element in the enumerable. |
| #pluck | Extract the given key from each element in the enumerable. |
| #sole | Returns the sole item in the enumerable. |
| #without | Alias for Enumerable#excluding. |
| #as_json | |
::ActiveSupport::EnumerableCoreExt::Constants - Included
Constructor Details
This class inherits a constructor from ActionDispatch::MiddlewareStack
Instance Method Details
#build(action, app = nil, &block)
[ GitHub ]# File 'actionpack/lib/action_controller/metal.rb', line 31
def build(action, app = nil, &block) action = action.to_s middlewares.reverse.inject(app || block) do |a, middleware| middleware.valid?(action) ? middleware.build(a) : a end end
#build_middleware(klass, args, block) (private)
[ GitHub ]# File 'actionpack/lib/action_controller/metal.rb', line 44
def build_middleware(klass, args, block) = args. only = Array(.delete(:only)).map(&:to_s) except = Array(.delete(:except)).map(&:to_s) args << unless .empty? strategy = NULL list = nil if only.any? strategy = INCLUDE list = only elsif except.any? strategy = EXCLUDE list = except end Middleware.new(klass, args, list, strategy, block) end