Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
feea0811
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 搜索 >>
未验证
提交
feea0811
编写于
2月 24, 2017
作者:
R
Rafael Mendonça França
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #28006 from fareastside/master
Allow ActiveSupport::MarshalWithAutoloading#load to take a Proc
上级
ccb00951
a72498f7
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
21 addition
and
2 deletion
+21
-2
activesupport/CHANGELOG.md
activesupport/CHANGELOG.md
+6
-0
activesupport/lib/active_support/core_ext/marshal.rb
activesupport/lib/active_support/core_ext/marshal.rb
+2
-2
activesupport/test/core_ext/marshal_test.rb
activesupport/test/core_ext/marshal_test.rb
+13
-0
未找到文件。
activesupport/CHANGELOG.md
浏览文件 @
feea0811
*
In Core Extensions, make
`MarshalWithAutoloading#load`
pass through the second, optional
argument for
`Marshal#load( source [, proc] )`
. This way we don't have to do
`Marshal.method(:load).super_method.call(sourse, proc)`
just to be able to pass a proc.
*Jeff Latz*
*
`ActiveSupport::Gzip.decompress`
now checks checksum and length in footer.
*Dylan Thacker-Smith*
...
...
activesupport/lib/active_support/core_ext/marshal.rb
浏览文件 @
feea0811
module
ActiveSupport
module
MarshalWithAutoloading
# :nodoc:
def
load
(
source
)
super
(
source
)
def
load
(
source
,
proc
=
nil
)
super
(
source
,
proc
)
rescue
ArgumentError
,
NameError
=>
exc
if
exc
.
message
.
match
(
%r|undefined class/module (.+?)(?:::)?
\z
|
)
# try loading the class/module
...
...
activesupport/test/core_ext/marshal_test.rb
浏览文件 @
feea0811
...
...
@@ -19,6 +19,19 @@ def teardown
end
end
test
"that Marshal#load still works when passed a proc"
do
example_string
=
"test"
example_proc
=
Proc
.
new
do
|
o
|
if
o
.
is_a?
(
String
)
o
.
capitalize!
end
end
dumped
=
Marshal
.
dump
(
example_string
)
assert_equal
Marshal
.
load
(
dumped
,
example_proc
),
"Test"
end
test
"that a missing class is autoloaded from string"
do
dumped
=
nil
with_autoloading_fixtures
do
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录