Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
b6e775ae
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,体验更适合开发者的 AI 搜索 >>
未验证
提交
b6e775ae
编写于
4月 15, 2019
作者:
R
Rafael França
提交者:
Rafael Mendonça França
4月 15, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Merge pull request #35975 from xithan/master
mounted routes with non-word characters
上级
2a3f619a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
22 addition
and
12 deletion
+22
-12
actionpack/lib/action_dispatch/journey/path/pattern.rb
actionpack/lib/action_dispatch/journey/path/pattern.rb
+2
-1
actionpack/test/dispatch/mount_test.rb
actionpack/test/dispatch/mount_test.rb
+9
-0
actionpack/test/journey/path/pattern_test.rb
actionpack/test/journey/path/pattern_test.rb
+11
-11
未找到文件。
actionpack/lib/action_dispatch/journey/path/pattern.rb
浏览文件 @
b6e775ae
...
...
@@ -119,7 +119,8 @@ def visit_OR(node)
class
UnanchoredRegexp
<
AnchoredRegexp
# :nodoc:
def
accept
(
node
)
%r{
\A
#{
visit
node
}
(?:
\b
|
\Z
)}
path
=
visit
node
path
==
"/"
?
%r{
\A
/}
:
%r{
\A
#{
path
}
(?:
\b
|
\Z
|/)}
end
end
...
...
actionpack/test/dispatch/mount_test.rb
浏览文件 @
b6e775ae
...
...
@@ -27,6 +27,7 @@ def self.call(env)
}
mount
SprocketsApp
,
at:
"/sprockets"
mount
SprocketsApp
,
at:
"/star*"
mount
SprocketsApp
=>
"/shorthand"
mount
SinatraLikeApp
,
at:
"/fakeengine"
,
as: :fake
...
...
@@ -58,6 +59,14 @@ def test_app_name_is_properly_generated_when_engine_is_mounted_in_resources
def
test_mounting_at_root_path
get
"/omg"
assert_equal
" -- /omg"
,
response
.
body
get
"/~omg"
assert_equal
" -- /~omg"
,
response
.
body
end
def
test_mounting_at_path_with_non_word_character
get
"/star*/omg"
assert_equal
"/star* -- /omg"
,
response
.
body
end
def
test_mounting_sets_script_name
...
...
actionpack/test/journey/path/pattern_test.rb
浏览文件 @
b6e775ae
...
...
@@ -34,17 +34,17 @@ class TestPattern < ActiveSupport::TestCase
end
{
"/:controller(/:action)"
=>
%r{
\A
/(
#{
x
}
)(?:/([^/.?]+))?(?:
\b
|
\Z
)}
,
"/:controller/foo"
=>
%r{
\A
/(
#{
x
}
)/foo(?:
\b
|
\Z
)}
,
"/:controller/:action"
=>
%r{
\A
/(
#{
x
}
)/([^/.?]+)(?:
\b
|
\Z
)}
,
"/:controller"
=>
%r{
\A
/(
#{
x
}
)(?:
\b
|
\Z
)}
,
"/:controller(/:action(/:id))"
=>
%r{
\A
/(
#{
x
}
)(?:/([^/.?]+)(?:/([^/.?]+))?)?(?:
\b
|
\Z
)}
,
"/:controller/:action.xml"
=>
%r{
\A
/(
#{
x
}
)/([^/.?]+)
\.
xml(?:
\b
|
\Z
)}
,
"/:controller.:format"
=>
%r{
\A
/(
#{
x
}
)
\.
([^/.?]+)(?:
\b
|
\Z
)}
,
"/:controller(.:format)"
=>
%r{
\A
/(
#{
x
}
)(?:
\.
([^/.?]+))?(?:
\b
|
\Z
)}
,
"/:controller/*foo"
=>
%r{
\A
/(
#{
x
}
)/(.+)(?:
\b
|
\Z
)}
,
"/:controller/*foo/bar"
=>
%r{
\A
/(
#{
x
}
)/(.+)/bar(?:
\b
|
\Z
)}
,
"/:foo|*bar"
=>
%r{
\A
/(?:([^/.?]+)|(.+))(?:
\b
|
\Z
)}
,
"/:controller(/:action)"
=>
%r{
\A
/(
#{
x
}
)(?:/([^/.?]+))?(?:
\b
|
\Z
|/
)}
,
"/:controller/foo"
=>
%r{
\A
/(
#{
x
}
)/foo(?:
\b
|
\Z
|/
)}
,
"/:controller/:action"
=>
%r{
\A
/(
#{
x
}
)/([^/.?]+)(?:
\b
|
\Z
|/
)}
,
"/:controller"
=>
%r{
\A
/(
#{
x
}
)(?:
\b
|
\Z
|/
)}
,
"/:controller(/:action(/:id))"
=>
%r{
\A
/(
#{
x
}
)(?:/([^/.?]+)(?:/([^/.?]+))?)?(?:
\b
|
\Z
|/
)}
,
"/:controller/:action.xml"
=>
%r{
\A
/(
#{
x
}
)/([^/.?]+)
\.
xml(?:
\b
|
\Z
|/
)}
,
"/:controller.:format"
=>
%r{
\A
/(
#{
x
}
)
\.
([^/.?]+)(?:
\b
|
\Z
|/
)}
,
"/:controller(.:format)"
=>
%r{
\A
/(
#{
x
}
)(?:
\.
([^/.?]+))?(?:
\b
|
\Z
|/
)}
,
"/:controller/*foo"
=>
%r{
\A
/(
#{
x
}
)/(.+)(?:
\b
|
\Z
|/
)}
,
"/:controller/*foo/bar"
=>
%r{
\A
/(
#{
x
}
)/(.+)/bar(?:
\b
|
\Z
|/
)}
,
"/:foo|*bar"
=>
%r{
\A
/(?:([^/.?]+)|(.+))(?:
\b
|
\Z
|/
)}
,
}.
each
do
|
path
,
expected
|
define_method
(
:"test_to_non_anchored_regexp_
#{
Regexp
.
escape
(
path
)
}
"
)
do
path
=
Pattern
.
build
(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录