diff options
author | wycats <wycats@gmail.com> | 2010-06-07 15:29:34 -0400 |
---|---|---|
committer | wycats <wycats@gmail.com> | 2010-06-07 15:29:55 -0400 |
commit | eebac026060ef9a5e69e69b01df61acee7c6c07f (patch) | |
tree | 5225db525163a284bac9adc08c6490d8e29b2957 | |
parent | 3adb395da4f11693c20cc331271d5927f96acac8 (diff) | |
download | rails-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.rb | 8 | ||||
-rw-r--r-- | actionpack/lib/action_dispatch/routing/route_set.rb | 5 |
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 |