Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
402c2af5
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
402c2af5
编写于
5月 27, 2014
作者:
A
Aaron Patterson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
give all endpoints a superclass
上级
40514aa2
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
40 addition
and
22 deletion
+40
-22
actionpack/lib/action_dispatch/routing/endpoint.rb
actionpack/lib/action_dispatch/routing/endpoint.rb
+10
-0
actionpack/lib/action_dispatch/routing/mapper.rb
actionpack/lib/action_dispatch/routing/mapper.rb
+13
-17
actionpack/lib/action_dispatch/routing/redirection.rb
actionpack/lib/action_dispatch/routing/redirection.rb
+7
-2
actionpack/lib/action_dispatch/routing/route_set.rb
actionpack/lib/action_dispatch/routing/route_set.rb
+10
-3
未找到文件。
actionpack/lib/action_dispatch/routing/endpoint.rb
0 → 100644
浏览文件 @
402c2af5
module
ActionDispatch
module
Routing
class
Endpoint
# :nodoc:
def
dispatcher?
;
false
;
end
def
redirect?
;
false
;
end
def
matches?
(
req
);
true
;
end
def
app
;
self
;
end
end
end
end
actionpack/lib/action_dispatch/routing/mapper.rb
浏览文件 @
402c2af5
...
...
@@ -6,6 +6,7 @@
require
'active_support/core_ext/module/remove_method'
require
'active_support/inflector'
require
'action_dispatch/routing/redirection'
require
'action_dispatch/routing/endpoint'
module
ActionDispatch
module
Routing
...
...
@@ -15,10 +16,10 @@ class Mapper
:controller
,
:action
,
:path_names
,
:constraints
,
:shallow
,
:blocks
,
:defaults
,
:options
]
class
Constraints
#:nodoc:
class
Constraints
<
Endpoint
#:nodoc:
attr_reader
:app
,
:constraints
def
initialize
(
app
,
constraints
,
request
,
dispatcher_p
,
redirect_p
)
def
initialize
(
app
,
constraints
,
request
,
dispatcher_p
)
# Unwrap Constraints objects. I don't actually think it's possible
# to pass a Constraints object to this constructor, but there were
# multiple places that kept testing children of this object. I
...
...
@@ -29,13 +30,11 @@ def initialize(app, constraints, request, dispatcher_p, redirect_p)
end
@dispatcher
=
dispatcher_p
@redirect
=
redirect_p
@app
,
@constraints
,
@request
=
app
,
constraints
,
request
end
def
dispatcher?
;
@dispatcher
;
end
def
redirect?
;
@redirect
;
end
def
matches?
(
req
)
@constraints
.
all?
do
|
constraint
|
...
...
@@ -220,24 +219,21 @@ def normalize_conditions!
end
def
app
dispatcher_p
=
false
redirect
=
false
# Unwrap any constraints so we can see what's inside for route generation.
# This allows the formatter to skip over any mounted applications or redirects
# that shouldn't be matched when using a url_for without a route name.
if
to
.
respond_to?
(
:call
)
endpoint
=
to
redirect
=
Redirect
===
endpoint
else
dispatcher_p
=
true
endpoint
=
dispatcher
end
if
blocks
.
any?
Constraints
.
new
(
endpoint
,
blocks
,
@set
.
request_class
,
dispatcher_p
,
redirect
)
if
Redirect
===
to
to
else
Constraints
.
new
(
to
,
blocks
,
@set
.
request_class
,
false
)
end
else
Constraints
.
new
(
endpoint
,
blocks
,
@set
.
request_class
,
dispatcher_p
,
redirect
)
if
blocks
.
any?
Constraints
.
new
(
dispatcher
,
blocks
,
@set
.
request_class
,
true
)
else
dispatcher
end
end
end
...
...
actionpack/lib/action_dispatch/routing/redirection.rb
浏览文件 @
402c2af5
...
...
@@ -3,10 +3,11 @@
require
'active_support/core_ext/array/extract_options'
require
'rack/utils'
require
'action_controller/metal/exceptions'
require
'action_dispatch/routing/endpoint'
module
ActionDispatch
module
Routing
class
Redirect
# :nodoc:
class
Redirect
<
Endpoint
# :nodoc:
attr_reader
:status
,
:block
def
initialize
(
status
,
block
)
...
...
@@ -14,9 +15,13 @@ def initialize(status, block)
@block
=
block
end
def
redirect?
;
true
;
end
def
call
(
env
)
req
=
Request
.
new
(
env
)
serve
Request
.
new
env
end
def
serve
(
req
)
# If any of the path parameters has an invalid encoding then
# raise since it's likely to trigger errors further on.
req
.
path_parameters
.
each
do
|
key
,
value
|
...
...
actionpack/lib/action_dispatch/routing/route_set.rb
浏览文件 @
402c2af5
...
...
@@ -8,6 +8,7 @@
require
'active_support/core_ext/array/extract_options'
require
'action_controller/metal/exceptions'
require
'action_dispatch/http/request'
require
'action_dispatch/routing/endpoint'
module
ActionDispatch
module
Routing
...
...
@@ -20,14 +21,20 @@ class RouteSet #:nodoc:
PARAMETERS_KEY
=
'action_dispatch.request.path_parameters'
class
Dispatcher
#:nodoc:
class
Dispatcher
<
Routing
::
Endpoint
#:nodoc:
def
initialize
(
defaults
)
@defaults
=
defaults
@controller_class_names
=
ThreadSafe
::
Cache
.
new
end
def
dispatcher?
;
true
;
end
def
call
(
env
)
params
=
env
[
PARAMETERS_KEY
]
serve
Request
.
new
env
end
def
serve
(
req
)
params
=
req
.
path_parameters
# If any of the path parameters has an invalid encoding then
# raise since it's likely to trigger errors further on.
...
...
@@ -46,7 +53,7 @@ def call(env)
return
[
404
,
{
'X-Cascade'
=>
'pass'
},
[]]
end
dispatch
(
controller
,
params
[
:action
],
env
)
dispatch
(
controller
,
params
[
:action
],
req
.
env
)
end
def
prepare_params!
(
params
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录