diff options
Diffstat (limited to 'actionpack/lib/action_controller/metal/hide_actions.rb')
-rw-r--r-- | actionpack/lib/action_controller/metal/hide_actions.rb | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/actionpack/lib/action_controller/metal/hide_actions.rb b/actionpack/lib/action_controller/metal/hide_actions.rb index cdacdc40a6..e893acffdf 100644 --- a/actionpack/lib/action_controller/metal/hide_actions.rb +++ b/actionpack/lib/action_controller/metal/hide_actions.rb @@ -1,3 +1,5 @@ +require 'active_support/core_ext/class/attribute' + module ActionController # ActionController::HideActions adds the ability to prevent public methods on a controller # to be called as actions. @@ -5,7 +7,8 @@ module ActionController extend ActiveSupport::Concern included do - extlib_inheritable_accessor(:hidden_actions) { Set.new } + class_attribute :hidden_actions + self.hidden_actions = Set.new end private @@ -14,7 +17,7 @@ module ActionController # action name is in the list of hidden actions. def action_method?(action_name) self.class.visible_action?(action_name) do - !hidden_actions.include?(action_name) && super + !self.class.hidden_actions.include?(action_name) && super end end @@ -24,7 +27,7 @@ module ActionController # ==== Parameters # *args<#to_s>:: A list of actions def hide_action(*args) - hidden_actions.merge(args.map! {|a| a.to_s }) + self.hidden_actions = hidden_actions.dup.merge(args.map(&:to_s)) end def inherited(klass) |