class AbstractController::Base

def action_methods

* Set - A set of all methods that should be considered actions.
==== Returns

itself.
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
    # except for public instance methods of Base and its ancestors.
    methods = public_instance_methods(true) - internal_methods
    # Be sure to include shadowed public instance methods of this class.
    methods.concat(public_instance_methods(false))
    methods.map!(&:to_s)
    methods.to_set
  end
end