decouple the router object from the request class

This commit is contained in:
Aaron Patterson 2014-05-23 10:57:15 -07:00
parent 6fd8346400
commit 0f5e3a9f6b
3 changed files with 10 additions and 21 deletions

View File

@ -20,13 +20,11 @@ module ActionDispatch
# :nodoc:
VERSION = '2.0.0'
attr_reader :request_class, :formatter
attr_reader :formatter
attr_accessor :routes
def initialize(routes, options)
@options = options
@request_class = options[:request_class]
@routes = routes
def initialize(routes)
@routes = routes
end
def serve(req)

View File

@ -302,8 +302,7 @@ module ActionDispatch
@finalized = false
@set = Journey::Routes.new
@router = Journey::Router.new(@set, {
:request_class => request_class})
@router = Journey::Router.new @set
@formatter = Journey::Formatter.new @set
end

View File

@ -12,18 +12,10 @@ module ActionDispatch
def setup
@app = StubDispatcher.new
@routes = Routes.new
@router = Router.new(@routes, {
:request_class => ActionDispatch::Request
})
@router = Router.new(@routes)
@formatter = Formatter.new(@routes)
end
def test_request_class_reader
klass = Object.new
router = Router.new(routes, :request_class => klass)
assert_equal klass, router.request_class
end
class FakeRequestFeeler < Struct.new(:env, :called)
def new env
self.env = env
@ -41,7 +33,7 @@ module ActionDispatch
end
def test_dashes
router = Router.new(routes, { :request_class => ActionDispatch::Request })
router = Router.new(routes)
exp = Router::Strexp.new '/foo-bar-baz', {}, ['/.?']
path = Path::Pattern.new exp
@ -57,7 +49,7 @@ module ActionDispatch
end
def test_unicode
router = Router.new(routes, { :request_class => ActionDispatch::Request })
router = Router.new(routes)
#match the escaped version of /ほげ
exp = Router::Strexp.new '/%E3%81%BB%E3%81%92', {}, ['/.?']
@ -75,7 +67,7 @@ module ActionDispatch
def test_request_class_and_requirements_success
klass = FakeRequestFeeler.new nil
router = Router.new(routes, {})
router = Router.new(routes)
requirements = { :hello => /world/ }
@ -95,7 +87,7 @@ module ActionDispatch
def test_request_class_and_requirements_fail
klass = FakeRequestFeeler.new nil
router = Router.new(routes, {})
router = Router.new(routes)
requirements = { :hello => /mom/ }
@ -124,7 +116,7 @@ module ActionDispatch
end
def test_request_class_overrides_path_info
router = Router.new(routes, {:request_class => CustomPathRequest })
router = Router.new(routes)
exp = Router::Strexp.new '/bar', {}, ['/.?']
path = Path::Pattern.new exp