Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
f5b7f091
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 搜索 >>
提交
f5b7f091
编写于
12月 21, 2008
作者:
P
Pratik Naik
浏览文件
操作
浏览文件
下载
差异文件
Merge commit 'fred/more_pullable'
上级
fab4f96b
fcd58dc2
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
38 addition
and
4 deletion
+38
-4
actionpack/lib/action_controller/streaming.rb
actionpack/lib/action_controller/streaming.rb
+12
-3
actionpack/test/controller/send_file_test.rb
actionpack/test/controller/send_file_test.rb
+25
-0
railties/lib/commands/dbconsole.rb
railties/lib/commands/dbconsole.rb
+1
-1
未找到文件。
actionpack/lib/action_controller/streaming.rb
浏览文件 @
f5b7f091
...
...
@@ -24,7 +24,8 @@ module Streaming
# Options:
# * <tt>:filename</tt> - suggests a filename for the browser to use.
# Defaults to <tt>File.basename(path)</tt>.
# * <tt>:type</tt> - specifies an HTTP content type. Defaults to 'application/octet-stream'.
# * <tt>:type</tt> - specifies an HTTP content type. Defaults to 'application/octet-stream'. You can specify
# either a string or a symbol for a registered type register with <tt>Mime::Type.register</tt>, for example :json
# * <tt>:length</tt> - used to manually override the length (in bytes) of the content that
# is going to be sent to the client. Defaults to <tt>File.size(path)</tt>.
# * <tt>:disposition</tt> - specifies whether the file will be shown inline or downloaded.
...
...
@@ -107,7 +108,8 @@ def send_file(path, options = {}) #:doc:
#
# Options:
# * <tt>:filename</tt> - suggests a filename for the browser to use.
# * <tt>:type</tt> - specifies an HTTP content type. Defaults to 'application/octet-stream'.
# * <tt>:type</tt> - specifies an HTTP content type. Defaults to 'application/octet-stream'. You can specify
# either a string or a symbol for a registered type register with <tt>Mime::Type.register</tt>, for example :json
# * <tt>:disposition</tt> - specifies whether the file will be shown inline or downloaded.
# Valid values are 'inline' and 'attachment' (default).
# * <tt>:status</tt> - specifies the status code to send with the response. Defaults to '200 OK'.
...
...
@@ -143,9 +145,16 @@ def send_file_headers!(options)
disposition
<<=
%(; filename="#{options[:filename]}")
if
options
[
:filename
]
content_type
=
options
[
:type
]
if
content_type
.
is_a?
(
Symbol
)
raise
ArgumentError
,
"Unknown MIME type
#{
options
[
:type
]
}
"
unless
Mime
::
EXTENSION_LOOKUP
.
has_key?
(
content_type
.
to_s
)
content_type
=
Mime
::
Type
.
lookup_by_extension
(
content_type
.
to_s
)
end
content_type
=
content_type
.
to_s
.
strip
# fixes a problem with extra '\r' with some browsers
headers
.
update
(
'Content-Length'
=>
options
[
:length
],
'Content-Type'
=>
options
[
:type
].
to_s
.
strip
,
# fixes a problem with extra '\r' with some browsers
'Content-Type'
=>
content_type
,
'Content-Disposition'
=>
disposition
,
'Content-Transfer-Encoding'
=>
'binary'
)
...
...
actionpack/test/controller/send_file_test.rb
浏览文件 @
f5b7f091
...
...
@@ -119,6 +119,31 @@ def test_send_file_headers!
assert_equal
'private'
,
h
[
'Cache-Control'
]
end
def
test_send_file_headers_with_mime_lookup_with_symbol
options
=
{
:length
=>
1
,
:type
=>
:png
}
@controller
.
headers
=
{}
@controller
.
send
(
:send_file_headers!
,
options
)
headers
=
@controller
.
headers
assert_equal
'image/png'
,
headers
[
'Content-Type'
]
end
def
test_send_file_headers_with_bad_symbol
options
=
{
:length
=>
1
,
:type
=>
:this_type_is_not_registered
}
@controller
.
headers
=
{}
assert_raises
(
ArgumentError
){
@controller
.
send
(
:send_file_headers!
,
options
)
}
end
%w(file data)
.
each
do
|
method
|
define_method
"test_send_
#{
method
}
_status"
do
@controller
.
options
=
{
:stream
=>
false
,
:status
=>
500
}
...
...
railties/lib/commands/dbconsole.rb
浏览文件 @
f5b7f091
...
...
@@ -41,7 +41,7 @@ def find_cmd(*commands)
if
config
[
'password'
]
&&
include_password
args
<<
"--password=
#{
config
[
'password'
]
}
"
elsif
config
[
'password'
]
&&
!
config
[
'password'
].
empty?
elsif
config
[
'password'
]
&&
!
config
[
'password'
].
to_s
.
empty?
args
<<
"-p"
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录