aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwycats <wycats@gmail.com>2010-06-07 15:29:34 -0400
committerwycats <wycats@gmail.com>2010-06-07 15:29:55 -0400
commiteebac026060ef9a5e69e69b01df61acee7c6c07f (patch)
tree5225db525163a284bac9adc08c6490d8e29b2957
parent3adb395da4f11693c20cc331271d5927f96acac8 (diff)
downloadrails-eebac026060ef9a5e69e69b01df61acee7c6c07f.tar.gz
rails-eebac026060ef9a5e69e69b01df61acee7c6c07f.tar.bz2
rails-eebac026060ef9a5e69e69b01df61acee7c6c07f.zip
Make named helpers unprotected without becoming actions [#4696 state:resolved]
-rw-r--r--actionpack/lib/action_controller/metal/url_for.rb8
-rw-r--r--actionpack/lib/action_dispatch/routing/route_set.rb5
2 files changed, 12 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/metal/url_for.rb b/actionpack/lib/action_controller/metal/url_for.rb
index 10c7ca9021..c465035ca1 100644
--- a/actionpack/lib/action_controller/metal/url_for.rb
+++ b/actionpack/lib/action_controller/metal/url_for.rb
@@ -16,5 +16,13 @@ module ActionController
raise "In order to use #url_for, you must include the helpers of a particular " \
"router. For instance, `include Rails.application.routes.url_helpers"
end
+
+ module ClassMethods
+ def action_methods
+ @action_methods ||= begin
+ super - _router.named_routes.helper_names
+ end
+ end
+ end
end
end \ No newline at end of file
diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb
index 750912b251..57a73dde75 100644
--- a/actionpack/lib/action_dispatch/routing/route_set.rb
+++ b/actionpack/lib/action_dispatch/routing/route_set.rb
@@ -68,6 +68,10 @@ module ActionDispatch
clear!
end
+ def helper_names
+ self.module.instance_methods.map(&:to_s)
+ end
+
def clear!
@routes = {}
@helpers = []
@@ -176,7 +180,6 @@ module ActionDispatch
url_for(options)
end
- protected :#{selector}
END_EVAL
helpers << selector
end