Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
e7e4ed48
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,发现更多精彩内容 >>
提交
e7e4ed48
编写于
1月 24, 2010
作者:
J
José Valim and Mikel Lindsaar
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Set sort order for explicit parts from the collector's template sequence
上级
c985a0ee
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
17 addition
and
14 deletion
+17
-14
actionmailer/lib/action_mailer/base.rb
actionmailer/lib/action_mailer/base.rb
+8
-4
actionmailer/test/base_test.rb
actionmailer/test/base_test.rb
+9
-10
未找到文件。
actionmailer/lib/action_mailer/base.rb
浏览文件 @
e7e4ed48
...
...
@@ -415,7 +415,7 @@ def mail(headers = {})
# Should be removed when old API is deprecated
@mail_was_called
=
true
m
,
sort_parts
=
@message
,
tru
e
m
=
@messag
e
# Give preference to headers and fallback to the ones set in mail
content_type
=
headers
[
:content_type
]
||
m
.
content_type
...
...
@@ -425,12 +425,16 @@ def mail(headers = {})
headers
[
:subject
]
||=
default_subject
quote_fields
(
m
,
headers
,
charset
)
sort_order
=
headers
[
:parts_order
]
||
self
.
class
.
default_implicit_parts_order
.
dup
responses
=
if
headers
[
:body
]
[
{
:body
=>
headers
[
:body
],
:content_type
=>
self
.
class
.
default_content_type
.
dup
}
]
elsif
block_given?
sort_parts
=
false
collector
=
ActionMailer
::
Collector
.
new
(
self
)
{
render
(
action_name
)
}
yield
(
collector
)
# Collect the sort order of the parts from the collector as Mail will always
# sort parts on encode into a "sane" sequence.
sort_order
=
collector
.
responses
.
map
{
|
r
|
r
[
:content_type
]
}
collector
.
responses
else
# TODO Ensure that we don't need to pass I18n.locale as detail
...
...
@@ -447,8 +451,8 @@ def mail(headers = {})
m
.
charset
=
charset
m
.
mime_version
=
mime_version
if
sort_parts
&&
m
.
parts
.
presen
t?
m
.
body
.
set_sort_order
(
headers
[
:parts_order
]
||
self
.
class
.
default_implicit_parts_order
.
dup
)
if
m
.
multipar
t?
m
.
body
.
set_sort_order
(
sort_order
)
m
.
body
.
sort_parts!
end
...
...
actionmailer/test/base_test.rb
浏览文件 @
e7e4ed48
...
...
@@ -304,16 +304,15 @@ def explicit_multipart_with_any(hash = {})
assert_equal
(
"HTML Explicit Multipart"
,
email
.
parts
[
1
].
parts
[
1
].
body
.
encoded
)
end
# TODO Seems Mail is sorting the templates automatically, and not on demand
# test "explicit multipart with templates" do
# email = BaseMailer.deliver_explicit_multipart_templates
# assert_equal(2, email.parts.size)
# assert_equal("multipart/alternate", email.mime_type)
# assert_equal("text/html", email.parts[0].mime_type)
# assert_equal("HTML Explicit Multipart Templates", email.parts[0].body.encoded)
# assert_equal("text/plain", email.parts[1].mime_type)
# assert_equal("TEXT Explicit Multipart Templates", email.parts[1].body.encoded)
# end
test
"explicit multipart with templates"
do
email
=
BaseMailer
.
deliver_explicit_multipart_templates
assert_equal
(
2
,
email
.
parts
.
size
)
assert_equal
(
"multipart/alternate"
,
email
.
mime_type
)
assert_equal
(
"text/html"
,
email
.
parts
[
0
].
mime_type
)
assert_equal
(
"HTML Explicit Multipart Templates"
,
email
.
parts
[
0
].
body
.
encoded
)
assert_equal
(
"text/plain"
,
email
.
parts
[
1
].
mime_type
)
assert_equal
(
"TEXT Explicit Multipart Templates"
,
email
.
parts
[
1
].
body
.
encoded
)
end
test
"explicit multipart with any"
do
email
=
BaseMailer
.
deliver_explicit_multipart_with_any
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录