class AbstractController::Base
def action_methods
==== Returns
itself. Finally, #hidden_actions are removed.
any methods that are internal, but still exist on the class
any internal methods (see #internal_methods), adding back in
includes all public instance methods on a controller, less
A list of method names that should be considered actions. This
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