aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/metal/hide_actions.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-02-17 00:48:04 +0100
committerJosé Valim <jose.valim@gmail.com>2010-02-17 00:48:04 +0100
commit3f948a0e2951a8bb7f32e98a404fb5ff97cb2896 (patch)
tree8528d926c137a3a0f18c21642a8b6be1f334b6df /actionpack/lib/action_controller/metal/hide_actions.rb
parentd4e008fd0f9ebac3383a0c3ac093de68db9e2e66 (diff)
parent762088a0ef1f69ab09833732cfe8190098303ee6 (diff)
downloadrails-3f948a0e2951a8bb7f32e98a404fb5ff97cb2896.tar.gz
rails-3f948a0e2951a8bb7f32e98a404fb5ff97cb2896.tar.bz2
rails-3f948a0e2951a8bb7f32e98a404fb5ff97cb2896.zip
Merge master.
Diffstat (limited to 'actionpack/lib/action_controller/metal/hide_actions.rb')
-rw-r--r--actionpack/lib/action_controller/metal/hide_actions.rb10
1 files changed, 4 insertions, 6 deletions
diff --git a/actionpack/lib/action_controller/metal/hide_actions.rb b/actionpack/lib/action_controller/metal/hide_actions.rb
index e893acffdf..3358d80c35 100644
--- a/actionpack/lib/action_controller/metal/hide_actions.rb
+++ b/actionpack/lib/action_controller/metal/hide_actions.rb
@@ -15,10 +15,8 @@ module ActionController
# Overrides AbstractController::Base#action_method? to return false if the
# action name is in the list of hidden actions.
- def action_method?(action_name)
- self.class.visible_action?(action_name) do
- !self.class.hidden_actions.include?(action_name) && super
- end
+ def method_for_action(action_name)
+ self.class.visible_action?(action_name) && super
end
module ClassMethods
@@ -31,13 +29,13 @@ module ActionController
end
def inherited(klass)
- klass.instance_variable_set("@visible_actions", {})
+ klass.class_eval { @visible_actions = {} }
super
end
def visible_action?(action_name)
return @visible_actions[action_name] if @visible_actions.key?(action_name)
- @visible_actions[action_name] = yield
+ @visible_actions[action_name] = !hidden_actions.include?(action_name)
end
# Overrides AbstractController::Base#action_methods to remove any methods