Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
fa0cf663
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,发现更多精彩内容 >>
提交
fa0cf663
编写于
7月 29, 2009
作者:
J
José Valim
提交者:
Yehuda Katz
7月 29, 2009
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add a couple more tests to respond_with.
Signed-off-by:
N
Yehuda Katz
<
wycats@gmail.com
>
上级
09de34ca
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
46 addition
and
11 deletion
+46
-11
actionpack/lib/action_controller/base/mime_responds.rb
actionpack/lib/action_controller/base/mime_responds.rb
+8
-11
actionpack/test/controller/mime_responds_test.rb
actionpack/test/controller/mime_responds_test.rb
+38
-0
未找到文件。
actionpack/lib/action_controller/base/mime_responds.rb
浏览文件 @
fa0cf663
...
...
@@ -4,7 +4,7 @@ module MimeResponds #:nodoc:
included
do
class_inheritable_reader
:mimes_for_respond_to
respond_to
# Set mimes_for_respond_to hash
clear_respond_to
end
module
ClassMethods
...
...
@@ -31,25 +31,22 @@ module ClassMethods
#
def
respond_to
(
*
mimes
)
options
=
mimes
.
extract_options!
mimes_hash
=
{}
only_actions
=
Array
(
options
.
delete
(
:only
))
except_actions
=
Array
(
options
.
delete
(
:except
))
mimes
.
each
do
|
mime
|
mime
=
mime
.
to_sym
mimes_
hash
[
mime
]
=
{}
mimes_
hash
[
mime
][
:only
]
=
only_actions
unless
only_actions
.
empty?
mimes_
hash
[
mime
][
:except
]
=
except_actions
unless
except_actions
.
empty?
mimes_
for_respond_to
[
mime
]
=
{}
mimes_
for_respond_to
[
mime
][
:only
]
=
only_actions
unless
only_actions
.
empty?
mimes_
for_respond_to
[
mime
][
:except
]
=
except_actions
unless
except_actions
.
empty?
end
write_inheritable_hash
(
:mimes_for_respond_to
,
mimes_hash
)
end
# Clear all mimes in respond_to.
#
def
clear_respond_to
!
mimes_for_respond_to
.
each
{
|
k
,
v
|
mimes
[
k
]
=
{
:only
=>
[]
}
}
def
clear_respond_to
write_inheritable_attribute
(
:mimes_for_respond_to
,
ActiveSupport
::
OrderedHash
.
new
)
end
end
...
...
@@ -185,10 +182,10 @@ def respond_to(*mimes, &block)
resource
=
options
.
delete
(
:with
)
responder
=
Responder
.
new
block
.
call
(
responder
)
if
block_given?
mimes
=
collect_mimes_from_class_level
if
mimes
.
empty?
mimes
.
each
{
|
mime
|
responder
.
send
(
mime
)
}
block
.
call
(
responder
)
if
block_given?
if
format
=
request
.
negotiate_mime
(
responder
.
order
)
respond_to_block_or_template_or_resource
(
format
,
resource
,
...
...
@@ -276,7 +273,7 @@ def respond_to_block_or_template_or_resource(format, resource, options)
begin
default_render
rescue
ActionView
::
MissingTemplate
=>
e
if
resource
&&
resource
.
respond_to?
(
"to_
#{
format
.
to_sym
}
"
)
if
resource
&&
resource
.
respond_to?
(
:
"to_
#{
format
.
to_sym
}
"
)
render
options
.
merge
(
format
.
to_sym
=>
resource
)
else
raise
e
...
...
actionpack/test/controller/mime_responds_test.rb
浏览文件 @
fa0cf663
...
...
@@ -508,6 +508,12 @@ def using_resource_with_options
end
end
def
default_overwritten
respond_to
do
|
format
|
format
.
html
{
render
:text
=>
"HTML"
}
end
end
protected
def
_render_js
(
js
,
options
)
...
...
@@ -516,6 +522,17 @@ def _render_js(js, options)
end
end
class
InheritedRespondWithController
<
RespondWithController
clear_respond_to
respond_to
:xml
,
:json
def
index
respond_with
(
RespondResource
.
new
)
do
|
format
|
format
.
json
{
render
:text
=>
"JSON"
}
end
end
end
class
RespondWithControllerTest
<
ActionController
::
TestCase
tests
RespondWithController
...
...
@@ -590,6 +607,27 @@ def test_using_resource_with_options
assert_equal
"JS"
,
@response
.
body
end
def
test_default_overwritten
get
:default_overwritten
assert_equal
"text/html"
,
@response
.
content_type
assert_equal
"HTML"
,
@response
.
body
end
def
test_clear_respond_to
@controller
=
InheritedRespondWithController
.
new
@request
.
accept
=
"text/html"
get
:index
assert_equal
406
,
@response
.
status
end
def
test_first_in_respond_to_has_higher_priority
@controller
=
InheritedRespondWithController
.
new
@request
.
accept
=
"*/*"
get
:index
assert_equal
"application/xml"
,
@response
.
content_type
assert_equal
"XML"
,
@response
.
body
end
def
test_not_acceptable
@request
.
accept
=
"application/xml"
get
:using_defaults
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录