Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
e665ce71
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,发现更多精彩内容 >>
提交
e665ce71
编写于
4月 15, 2014
作者:
R
Rafael Mendonça França
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #14733 from akshay-vishnoi/test-cases
Improve tests for duplicable, remove unnecessary constant
上级
a21fae70
e120d212
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
12 addition
and
16 deletion
+12
-16
activesupport/lib/active_support/core_ext/object/duplicable.rb
...esupport/lib/active_support/core_ext/object/duplicable.rb
+3
-0
activesupport/test/core_ext/object/duplicable_test.rb
activesupport/test/core_ext/object/duplicable_test.rb
+9
-16
未找到文件。
activesupport/lib/active_support/core_ext/object/duplicable.rb
浏览文件 @
e665ce71
...
...
@@ -78,6 +78,9 @@ def duplicable?
require
'bigdecimal'
class
BigDecimal
# Needed to support Ruby 1.9.x, as it doesn't allow dup on BigDecimal, instead
# raises TypeError exception. Checking here on the runtime whether BigDecimal
# will allow dup or not.
begin
BigDecimal
.
new
(
'4.56'
).
dup
...
...
activesupport/test/core_ext/object/duplicable_test.rb
浏览文件 @
e665ce71
...
...
@@ -5,34 +5,27 @@
class
DuplicableTest
<
ActiveSupport
::
TestCase
RAISE_DUP
=
[
nil
,
false
,
true
,
:symbol
,
1
,
2.3
,
5
.
seconds
]
YES
=
[
'1'
,
Object
.
new
,
/foo/
,
[],
{},
Time
.
now
,
Class
.
new
,
Module
.
new
]
NO
=
[]
ALLOW_DUP
=
[
'1'
,
Object
.
new
,
/foo/
,
[],
{},
Time
.
now
,
Class
.
new
,
Module
.
new
]
# Needed to support Ruby 1.9.x, as it doesn't allow dup on BigDecimal, instead
# raises TypeError exception. Checking here on the runtime whether BigDecimal
# will allow dup or not.
begin
bd
=
BigDecimal
.
new
(
'4.56'
)
YES
<<
bd
.
dup
ALLOW_DUP
<<
bd
.
dup
rescue
TypeError
RAISE_DUP
<<
bd
end
def
test_duplicable
(
RAISE_DUP
+
NO
)
.
each
do
|
v
|
RAISE_DUP
.
each
do
|
v
|
assert
!
v
.
duplicable?
assert_raises
(
TypeError
,
v
.
class
.
name
)
{
v
.
dup
}
end
YES
.
each
do
|
v
|
assert
v
.
duplicable?
,
"
#{
v
.
class
}
should be duplicable"
end
(
YES
+
NO
).
each
do
|
v
|
ALLOW_DUP
.
each
do
|
v
|
assert
v
.
duplicable?
,
"
#{
v
.
class
}
should be duplicable"
assert_nothing_raised
{
v
.
dup
}
end
RAISE_DUP
.
each
do
|
v
|
assert_raises
(
TypeError
,
v
.
class
.
name
)
do
v
.
dup
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录