Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
5c224de9
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,发现更多精彩内容 >>
提交
5c224de9
编写于
8月 28, 2013
作者:
B
Bogdan Gusiev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Rewrite journey routes formatter for performance
上级
af3a69a7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
23 deletion
+23
-23
actionpack/lib/action_dispatch/journey/visitors.rb
actionpack/lib/action_dispatch/journey/visitors.rb
+23
-23
未找到文件。
actionpack/lib/action_dispatch/journey/visitors.rb
浏览文件 @
5c224de9
...
...
@@ -84,44 +84,44 @@ def visit_GROUP(node)
# Used for formatting urls (url_for)
class
Formatter
<
Visitor
# :nodoc:
attr_reader
:options
,
:consumed
attr_reader
:options
def
initialize
(
options
)
@options
=
options
@consumed
=
{}
end
private
def
visit_GROUP
(
node
)
if
consumed
==
options
nil
else
route
=
visit
(
node
.
left
)
route
.
include?
(
"
\0
"
)
?
nil
:
route
def
visit
(
node
,
optional
=
false
)
case
node
.
type
when
:LITERAL
,
:SLASH
,
:DOT
node
.
left
when
:STAR
visit
(
node
.
left
)
when
:GROUP
visit
(
node
.
left
,
true
)
when
:CAT
visit_CAT
(
node
,
optional
)
when
:SYMBOL
visit_SYMBOL
(
node
)
end
end
def
terminal
(
node
)
node
.
left
end
def
binary
(
node
)
[
visit
(
node
.
left
),
visit
(
node
.
right
)].
join
end
def
nary
(
node
)
node
.
children
.
map
{
|
c
|
visit
(
c
)
}.
join
def
visit_CAT
(
node
,
optional
)
left
=
visit
(
node
.
left
,
optional
)
right
=
visit
(
node
.
right
,
optional
)
if
optional
&&
!
(
right
&&
left
)
""
else
left
+
right
end
end
def
visit_SYMBOL
(
node
)
key
=
node
.
to_sym
if
value
=
options
[
key
]
consumed
[
key
]
=
value
if
value
=
options
[
node
.
to_sym
]
Router
::
Utils
.
escape_path
(
value
)
else
"
\0
"
nil
end
end
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录