Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
bf1716bc
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,发现更多精彩内容 >>
提交
bf1716bc
编写于
2月 01, 2015
作者:
A
Andrew White
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #18769 from gsamokovarov/exception-wrapper-windows-paths
Show proper traces on Windows for the error pages
上级
aa8ade58
872e22c6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
25 addition
and
2 deletion
+25
-2
actionpack/lib/action_dispatch/middleware/exception_wrapper.rb
...npack/lib/action_dispatch/middleware/exception_wrapper.rb
+8
-2
actionpack/test/dispatch/exception_wrapper_test.rb
actionpack/test/dispatch/exception_wrapper_test.rb
+17
-0
未找到文件。
actionpack/lib/action_dispatch/middleware/exception_wrapper.rb
浏览文件 @
bf1716bc
...
...
@@ -87,8 +87,7 @@ def self.status_code_for_exception(class_name)
def
source_extracts
backtrace
.
map
do
|
trace
|
file
,
line
=
trace
.
split
(
":"
)
line_number
=
line
.
to_i
file
,
line_number
=
extract_file_and_line_number
(
trace
)
{
code:
source_fragment
(
file
,
line_number
),
...
...
@@ -139,6 +138,13 @@ def source_fragment(path, line)
end
end
def
extract_file_and_line_number
(
trace
)
# Split by the first colon followed by some digits, which works for both
# Windows and Unix path styles.
file
,
line
=
trace
.
match
(
/^(.+?):(\d+).*$/
,
&
:captures
)
||
trace
[
file
,
line
.
to_i
]
end
def
expand_backtrace
@exception
.
backtrace
.
unshift
(
@exception
.
to_s
.
split
(
"
\n
"
)
...
...
actionpack/test/dispatch/exception_wrapper_test.rb
浏览文件 @
bf1716bc
...
...
@@ -34,6 +34,23 @@ def backtrace
assert_equal
[
code:
'foo'
,
line_number:
42
],
wrapper
.
source_extracts
end
test
'#source_extracts works with Windows paths'
do
exc
=
TestError
.
new
(
"c:/path/to/rails/app/controller.rb:27:in 'index':"
)
wrapper
=
ExceptionWrapper
.
new
({},
exc
)
wrapper
.
expects
(
:source_fragment
).
with
(
'c:/path/to/rails/app/controller.rb'
,
27
).
returns
(
'nothing'
)
assert_equal
[
code:
'nothing'
,
line_number:
27
],
wrapper
.
source_extracts
end
test
'#source_extracts works with non standard backtrace'
do
exc
=
TestError
.
new
(
'invalid'
)
wrapper
=
ExceptionWrapper
.
new
({},
exc
)
wrapper
.
expects
(
:source_fragment
).
with
(
'invalid'
,
0
).
returns
(
'nothing'
)
assert_equal
[
code:
'nothing'
,
line_number:
0
],
wrapper
.
source_extracts
end
test
'#application_trace returns traces only from the application'
do
exception
=
TestError
.
new
(
caller
.
prepend
(
"lib/file.rb:42:in `index'"
))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录