Overrides AbstractController::Base#action_methods to remove any methods that are listed as hidden methods.
# File lib/action_controller/metal/hide_actions.rb, line 43 def action_methods @action_methods ||= Set.new(super.reject { |name| hidden_actions.include?(name) }) end
Sets all of the actions passed in as hidden actions.
A list of actions
# File lib/action_controller/metal/hide_actions.rb, line 27 def hide_action(*args) self.hidden_actions = hidden_actions.dup.merge(args.map(&:to_s)).freeze end
# File lib/action_controller/metal/hide_actions.rb, line 31 def inherited(klass) klass.class_eval { @visible_actions = {} } super end
# File lib/action_controller/metal/hide_actions.rb, line 36 def visible_action?(action_name) return @visible_actions[action_name] if @visible_actions.key?(action_name) @visible_actions[action_name] = !hidden_actions.include?(action_name) end