The determination of the filter type was once done at run time. This method is here to extract as much logic from the filter run time as possible
Source Code
# File action_controller/filters.rb, line 579 def class_for_filter(filter, filter_type) #:nodoc: case when filter.is_a?(Symbol) SymbolFilter when filter.respond_to?(:call) if filter.is_a?(Method) MethodFilter else case filter.arity when 1; ProcFilter when 2; ProcWithCallFilter else raise ArgumentError, 'Filter blocks must take one or two arguments.' end end when filter.respond_to?(:filter) ClassFilter when filter.respond_to?(:before) && filter_type == :before ClassBeforeFilter when filter.respond_to?(:after) && filter_type == :after ClassAfterFilter else raise(ActionControllerError, 'A filter must be a Symbol, Proc, Method, or object responding to filter, after or before.') end end
<code/>and<pre/>for code samples.