Module: AbstractController::Callbacks::ClassMethods
Relationships & Source Files | |
Defined in: | actionpack/lib/abstract_controller/callbacks.rb |
Instance Method Summary
-
#_insert_callbacks(callbacks, block = nil)
Take callback names and an optional callback proc, normalize them, then call the block with each callback.
-
#_normalize_callback_options(options)
If
:only
or:except
are used, convert the options into the:if
and:unless
options of::ActiveSupport::Callbacks
. -
#after_action(names, block)
Append a callback after actions.
-
#append_after_action(names, block)
Append a callback after actions.
-
#append_around_action(names, block)
Append a callback around actions.
-
#append_before_action(names, block)
Append a callback before actions.
-
#around_action(names, block)
Append a callback around actions.
-
#before_action(names, block)
Append a callback before actions.
-
#prepend_after_action(names, block)
Prepend a callback after actions.
-
#prepend_around_action(names, block)
Prepend a callback around actions.
-
#prepend_before_action(names, block)
Prepend a callback before actions.
-
#skip_after_action(names)
Skip a callback after actions.
-
#skip_around_action(names)
Skip a callback around actions.
-
#skip_before_action(names)
Skip a callback before actions.
- #_normalize_callback_option(options, from, to) Internal use only
Instance Method Details
#_insert_callbacks(callbacks, block = nil)
Take callback names and an optional callback proc, normalize them, then call the block with each callback. This allows us to abstract the normalization across several methods that use it.
#### Parameters
-
callbacks
- An array of callbacks, with an optional options hash as the last parameter. -
block
- A proc that should be added to the callbacks.
#### Block Parameters
-
name
- The callback to be added. -
options
- A hash of options to be used when adding the callback.
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 120
def _insert_callbacks(callbacks, block = nil) = callbacks. callbacks.push(block) if block [:filters] = callbacks ( ) .delete(:filters) callbacks.each do |callback| yield callback, end end
#_normalize_callback_option(options, from, to)
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 98
def _normalize_callback_option(, from, to) # :nodoc: if from_value = .delete(from) filters = [:filters] from_value = ActionFilter.new(filters, from, from_value) [to] = Array( [to]).unshift(from_value) end end
#_normalize_callback_options(options)
If :only
or :except
are used, convert the options into the :if
and :unless
options of ::ActiveSupport::Callbacks
.
The basic idea is that :only => :index
gets converted to ‘:if => proc {|c| c.action_name == “index” }`.
Note that :only
has priority over :if
in case they are used together.
only: :index, if: -> { true } # the :if option will be ignored.
Note that :if
has priority over :except
in case they are used together.
except: :index, if: -> { true } # the :except option will be ignored.
#### Options
-
only
- The callback should be run only for this action. -
except
- The callback should be run for all actions except this action.
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 93
def ( ) _normalize_callback_option(, :only, :if) _normalize_callback_option(, :except, :unless) end
#after_action(names, block)
Append a callback after actions. See _insert_callbacks for parameter details.
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 173
rdoc_method :method: after_action
#append_after_action(names, block)
Append a callback after actions. See _insert_callbacks for parameter details.
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 194
rdoc_method :method: append_after_action
#append_around_action(names, block)
Append a callback around actions. See _insert_callbacks for parameter details. set up before_action, prepend_before_action, skip_before_action, etc. for each of before, after, and around.
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 231
rdoc_method :method: append_around_action
#append_before_action(names, block)
Append a callback before actions. See _insert_callbacks for parameter details.
If the callback renders or redirects, the action will not run. If there are additional callbacks scheduled to run after that callback, they are also cancelled.
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 162
rdoc_method :method: append_before_action
#around_action(names, block)
Append a callback around actions. See _insert_callbacks for parameter details.
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 201
rdoc_method :method: around_action
#before_action(names, block)
Append a callback before actions. See _insert_callbacks for parameter details.
If the callback renders or redirects, the action will not run. If there are additional callbacks scheduled to run after that callback, they are also cancelled.
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 132
rdoc_method :method: before_action
#prepend_after_action(names, block)
Prepend a callback after actions. See _insert_callbacks for parameter details.
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 180
rdoc_method :method: prepend_after_action
#prepend_around_action(names, block)
Prepend a callback around actions. See _insert_callbacks for parameter details.
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 208
rdoc_method :method: prepend_around_action
#prepend_before_action(names, block)
Prepend a callback before actions. See _insert_callbacks for parameter details.
If the callback renders or redirects, the action will not run. If there are additional callbacks scheduled to run after that callback, they are also cancelled.
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 143
rdoc_method :method: prepend_before_action
#skip_after_action(names)
Skip a callback after actions. See _insert_callbacks for parameter details.
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 187
rdoc_method :method: skip_after_action
#skip_around_action(names)
Skip a callback around actions. See _insert_callbacks for parameter details.
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 216
rdoc_method :method: skip_around_action
#skip_before_action(names)
Skip a callback before actions. See _insert_callbacks for parameter details.
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 155
rdoc_method :method: skip_before_action