Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
f9e60c74
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,发现更多精彩内容 >>
提交
f9e60c74
编写于
7月 18, 2013
作者:
B
Bogdan Gusiev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Disable ability to iterate over a Range of TimeWithZone
上级
1a58ac60
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
47 addition
and
0 deletion
+47
-0
activesupport/lib/active_support/core_ext/range.rb
activesupport/lib/active_support/core_ext/range.rb
+1
-0
activesupport/lib/active_support/core_ext/range/each.rb
activesupport/lib/active_support/core_ext/range/each.rb
+24
-0
activesupport/test/core_ext/range_ext_test.rb
activesupport/test/core_ext/range_ext_test.rb
+22
-0
未找到文件。
activesupport/lib/active_support/core_ext/range.rb
浏览文件 @
f9e60c74
require
'active_support/core_ext/range/conversions'
require
'active_support/core_ext/range/include_range'
require
'active_support/core_ext/range/overlaps'
require
'active_support/core_ext/range/each'
activesupport/lib/active_support/core_ext/range/each.rb
0 → 100644
浏览文件 @
f9e60c74
require
'active_support/core_ext/module/aliasing'
require
'active_support/core_ext/object/acts_like'
class
Range
#:nodoc:
def
each_with_time_with_zone
(
&
block
)
ensure_iteration_allowed
each_without_time_with_zone
(
&
block
)
end
alias_method_chain
:each
,
:time_with_zone
def
step_with_time_with_zone
(
n
=
1
,
&
block
)
ensure_iteration_allowed
step_without_time_with_zone
(
n
,
&
block
)
end
alias_method_chain
:step
,
:time_with_zone
private
def
ensure_iteration_allowed
if
first
.
acts_like?
(
:time
)
raise
TypeError
,
"can't iterate from
#{
first
.
class
}
"
end
end
end
activesupport/test/core_ext/range_ext_test.rb
浏览文件 @
f9e60c74
...
...
@@ -90,4 +90,26 @@ def test_no_overlaps_on_time
time_range_2
=
Time
.
utc
(
2005
,
12
,
10
,
17
,
31
)
..
Time
.
utc
(
2005
,
12
,
10
,
18
,
00
)
assert
!
time_range_1
.
overlaps?
(
time_range_2
)
end
def
test_each_on_time_with_zone
twz
=
ActiveSupport
::
TimeWithZone
.
new
(
nil
,
ActiveSupport
::
TimeZone
[
'Eastern Time (US & Canada)'
]
,
Time
.
utc
(
2006
,
11
,
28
,
10
,
30
))
assert_raises
TypeError
do
((
twz
-
1
.
hour
)
..
twz
).
each
{}
end
end
def
test_step_on_time_with_zone
twz
=
ActiveSupport
::
TimeWithZone
.
new
(
nil
,
ActiveSupport
::
TimeZone
[
'Eastern Time (US & Canada)'
]
,
Time
.
utc
(
2006
,
11
,
28
,
10
,
30
))
assert_raises
TypeError
do
((
twz
-
1
.
hour
)
..
twz
).
step
(
1
)
{}
end
end
def
test_include_on_time_with_zone
twz
=
ActiveSupport
::
TimeWithZone
.
new
(
nil
,
ActiveSupport
::
TimeZone
[
'Eastern Time (US & Canada)'
]
,
Time
.
utc
(
2006
,
11
,
28
,
10
,
30
))
assert_raises
TypeError
do
((
twz
-
1
.
hour
)
..
twz
).
include?
(
twz
)
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录