Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
4509494f
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,发现更多精彩内容 >>
提交
4509494f
编写于
7月 29, 2012
作者:
A
Aaron Patterson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
header hash is duped before being sent up the rack stack
上级
b3d1f5b6
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
33 addition
and
12 deletion
+33
-12
actionpack/lib/action_controller/metal/live.rb
actionpack/lib/action_controller/metal/live.rb
+4
-0
actionpack/lib/action_dispatch/http/response.rb
actionpack/lib/action_dispatch/http/response.rb
+16
-12
actionpack/test/controller/live_stream_test.rb
actionpack/test/controller/live_stream_test.rb
+13
-0
未找到文件。
actionpack/lib/action_controller/metal/live.rb
浏览文件 @
4509494f
...
...
@@ -71,6 +71,10 @@ def []=(k,v)
super
end
def
to_hash
__getobj__
.
dup
end
end
def
initialize
(
status
=
200
,
header
=
{},
body
=
[])
...
...
actionpack/lib/action_dispatch/http/response.rb
浏览文件 @
4509494f
...
...
@@ -216,17 +216,7 @@ def close
end
def
to_a
assign_default_content_type_and_charset!
handle_conditional_get!
@header
[
SET_COOKIE
]
=
@header
[
SET_COOKIE
].
join
(
"
\n
"
)
if
@header
[
SET_COOKIE
].
respond_to?
(
:join
)
if
[
204
,
304
].
include?
(
@status
)
@header
.
delete
CONTENT_TYPE
[
@status
,
@header
,
[]]
else
[
@status
,
@header
,
self
]
end
rack_response
@status
,
@header
.
to_hash
end
alias
prepare!
to_a
alias
to_ary
to_a
# For implicit splat on 1.9.2
...
...
@@ -258,7 +248,7 @@ def munge_body_object(body)
body
.
respond_to?
(
:each
)
?
body
:
[
body
]
end
def
assign_default_content_type_and_charset!
def
assign_default_content_type_and_charset!
(
headers
)
return
if
headers
[
CONTENT_TYPE
].
present?
@content_type
||=
Mime
::
HTML
...
...
@@ -269,5 +259,19 @@ def assign_default_content_type_and_charset!
headers
[
CONTENT_TYPE
]
=
type
end
def
rack_response
(
status
,
header
)
assign_default_content_type_and_charset!
(
header
)
handle_conditional_get!
header
[
SET_COOKIE
]
=
header
[
SET_COOKIE
].
join
(
"
\n
"
)
if
header
[
SET_COOKIE
].
respond_to?
(
:join
)
if
[
204
,
304
].
include?
(
@status
)
header
.
delete
CONTENT_TYPE
[
status
,
header
,
[]]
else
[
status
,
header
,
self
]
end
end
end
end
actionpack/test/controller/live_stream_test.rb
浏览文件 @
4509494f
...
...
@@ -12,6 +12,11 @@ def self.controller_path
'test'
end
def
default_header
response
.
stream
.
write
"<html><body>hi</body></html>"
response
.
stream
.
close
end
def
basic_stream
response
.
headers
[
'Content-Type'
]
=
'text/event-stream'
%w{ hello world }
.
each
do
|
word
|
...
...
@@ -94,5 +99,13 @@ def test_thread_locals_get_copied
get
:thread_locals
end
def
test_live_stream_default_header
@controller
.
request
=
@request
@controller
.
response
=
@response
@controller
.
process
:default_header
_
,
headers
,
_
=
@response
.
prepare!
assert
headers
[
'Content-Type'
]
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录