diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2015-08-24 12:06:22 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2015-08-24 12:06:41 -0700 |
commit | 337684fa28a3e8d55874d5740585710d0fa99ead (patch) | |
tree | b431400ddd5dac554956d7aa5db2b763a8b38acb /actionpack/test | |
parent | 518ae9f055cd31c0f00c221d56bf0d44733cb782 (diff) | |
download | rails-337684fa28a3e8d55874d5740585710d0fa99ead.tar.gz rails-337684fa28a3e8d55874d5740585710d0fa99ead.tar.bz2 rails-337684fa28a3e8d55874d5740585710d0fa99ead.zip |
use a custom request class to determine the controller class
controller class resolution has been moved to the request object, so we
should override that method instead of relying on the RouteSet to
generate the controller class.
Diffstat (limited to 'actionpack/test')
-rw-r--r-- | actionpack/test/abstract_unit.rb | 44 |
1 files changed, 21 insertions, 23 deletions
diff --git a/actionpack/test/abstract_unit.rb b/actionpack/test/abstract_unit.rb index 7ea4249e7e..c8f4c68ed0 100644 --- a/actionpack/test/abstract_unit.rb +++ b/actionpack/test/abstract_unit.rb @@ -323,39 +323,37 @@ module RoutingTestHelpers end class TestSet < ActionDispatch::Routing::RouteSet - attr_reader :strict - - def initialize(block, strict = false) - @block = block - @strict = strict - super() - end - - class Dispatcher < ActionDispatch::Routing::RouteSet::Dispatcher - def initialize(defaults, set, block) - super(defaults) + class Request < DelegateClass(ActionDispatch::Request) + def initialize(target, helpers, block, strict) + super(target) + @helpers = helpers @block = block - @set = set - end - - def controller(params, default_controller=true) - super(params, @set.strict) + @strict = strict end - def controller_reference(controller_param) + def controller_class + helpers = @helpers block = @block - set = @set - super if @set.strict - Class.new(ActionController::Base) { - include set.url_helpers + Class.new(@strict ? super : ActionController::Base) { + include helpers define_method(:process) { |name| block.call(self) } def to_a; [200, {}, []]; end } end end - def dispatcher defaults - TestSet::Dispatcher.new defaults, self, @block + attr_reader :strict + + def initialize(block, strict = false) + @block = block + @strict = strict + super() + end + + private + + def make_request(env) + Request.new super, url_helpers, @block, strict end end end |