A list of method names that should be considered actions. This includes all
public instance methods on a controller, less any internal methods (see #internal_methods),
adding back in any methods that are internal, but still exist on the class
itself. Finally, #hidden_actions
are removed.
Returns
array - A list of all methods that should be considered actions.
# File actionpack/lib/abstract_controller/base.rb, line 61
def action_methods
@action_methods ||= begin
# All public instance methods of this class, including ancestors
methods = public_instance_methods(true).map { |m| m.to_s }.to_set -
# Except for public instance methods of Base and its ancestors
internal_methods.map { |m| m.to_s } +
# Be sure to include shadowed public instance methods of this class
public_instance_methods(false).map { |m| m.to_s } -
# And always exclude explicitly hidden actions
hidden_actions
# Clear out AS callback method pollution
methods.reject { |method| method =~ /_one_time_conditions/ }
end
end