diff options
author | Andrew White <andyw@pixeltrix.co.uk> | 2010-06-28 00:53:36 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-06-28 12:25:19 +0200 |
commit | 19ccd4628c1ab4aebc00dc8d480d6cbf1688a312 (patch) | |
tree | 8bb14a8e17121d786d55f4b004b76e822edf7742 /actionpack/lib/action_dispatch/routing/route.rb | |
parent | 6d04fa6dc4865af1112c4d35a456a81008815ee7 (diff) | |
download | rails-19ccd4628c1ab4aebc00dc8d480d6cbf1688a312.tar.gz rails-19ccd4628c1ab4aebc00dc8d480d6cbf1688a312.tar.bz2 rails-19ccd4628c1ab4aebc00dc8d480d6cbf1688a312.zip |
Remove invalid conditions from route [#4989 state:resolved]
Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'actionpack/lib/action_dispatch/routing/route.rb')
-rw-r--r-- | actionpack/lib/action_dispatch/routing/route.rb | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/routing/route.rb b/actionpack/lib/action_dispatch/routing/route.rb index 6f37eadd6b..aefebf8f80 100644 --- a/actionpack/lib/action_dispatch/routing/route.rb +++ b/actionpack/lib/action_dispatch/routing/route.rb @@ -2,9 +2,10 @@ module ActionDispatch module Routing class Route #:nodoc: attr_reader :app, :conditions, :defaults, :name - attr_reader :path, :requirements + attr_reader :path, :requirements, :set - def initialize(app, conditions, requirements, defaults, name, anchor) + def initialize(set, app, conditions, requirements, defaults, name, anchor) + @set = set @app = app @defaults = defaults @name = name @@ -24,6 +25,9 @@ module ActionDispatch h[k] = Rack::Mount::RegexpWithNamedGroups.new(v) h } + + @conditions.delete_if{ |k,v| k != :path_info && !valid_condition?(k) } + @requirements.delete_if{ |k,v| !valid_condition?(k) } end def verb @@ -50,6 +54,11 @@ module ActionDispatch "%-6s %-40s %s" % [(verb || :any).to_s.upcase, path, requirements.inspect] end end + + private + def valid_condition?(method) + segment_keys.include?(method) || set.valid_conditions.include?(method) + end end end end |