diff options
author | Ernie Miller <ernie@erniemiller.org> | 2012-08-22 10:27:42 -0400 |
---|---|---|
committer | Ernie Miller <ernie@erniemiller.org> | 2012-09-03 13:13:16 -0400 |
commit | 4037e31d8874250e485ca6a27bd792a3beb13f76 (patch) | |
tree | 448dc02534c5b9d5116bc0b11d19a56125873411 /actionpack/lib | |
parent | 30a8f0d5b675d0eddc0af05103f4eb7f95c7caad (diff) | |
download | rails-4037e31d8874250e485ca6a27bd792a3beb13f76.tar.gz rails-4037e31d8874250e485ca6a27bd792a3beb13f76.tar.bz2 rails-4037e31d8874250e485ca6a27bd792a3beb13f76.zip |
Allow routing concerns to accept a callable
This allows us to make alterations to the generated routes based on the
scope of the current mapper, and otherwise allows us to move larger
blocks of concerns out of the routes file, altogether.
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_dispatch/routing/mapper.rb | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index b52f66faf1..b1abbbe505 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -1613,8 +1613,8 @@ module ActionDispatch # end # # Any routing helpers can be used inside a concern. - def concern(name, &block) - @concerns[name] = block + def concern(name, callable = nil, &block) + @concerns[name] = callable || block end # Use the named concerns @@ -1631,7 +1631,7 @@ module ActionDispatch def concerns(*names) names.flatten.each do |name| if concern = @concerns[name] - instance_eval(&concern) + concern.call(self) else raise ArgumentError, "No concern named #{name} was found!" end @@ -1645,6 +1645,10 @@ module ActionDispatch @concerns = {} end + def current_scope + @scope + end + include Base include HttpHelpers include Redirection |