Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
d599b800
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,发现更多精彩内容 >>
提交
d599b800
编写于
9月 11, 2008
作者:
T
Tom Lea
提交者:
gbuesing
10月 13, 2008
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Deprecated Float#years and Float#months, moved Numeric#years and Numeric#months into Integer.
上级
27c70ff3
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
94 addition
and
10 deletion
+94
-10
activesupport/lib/active_support/core_ext/float.rb
activesupport/lib/active_support/core_ext/float.rb
+2
-0
activesupport/lib/active_support/core_ext/float/time.rb
activesupport/lib/active_support/core_ext/float/time.rb
+27
-0
activesupport/lib/active_support/core_ext/integer.rb
activesupport/lib/active_support/core_ext/integer.rb
+2
-0
activesupport/lib/active_support/core_ext/integer/time.rb
activesupport/lib/active_support/core_ext/integer/time.rb
+45
-0
activesupport/lib/active_support/core_ext/numeric/time.rb
activesupport/lib/active_support/core_ext/numeric/time.rb
+0
-10
activesupport/test/core_ext/duration_test.rb
activesupport/test/core_ext/duration_test.rb
+18
-0
未找到文件。
activesupport/lib/active_support/core_ext/float.rb
浏览文件 @
d599b800
require
'active_support/core_ext/float/rounding'
require
'active_support/core_ext/float/time'
class
Float
#:nodoc:
include
ActiveSupport
::
CoreExtensions
::
Float
::
Rounding
include
ActiveSupport
::
CoreExtensions
::
Float
::
Time
end
activesupport/lib/active_support/core_ext/float/time.rb
0 → 100644
浏览文件 @
d599b800
module
ActiveSupport
#:nodoc:
module
CoreExtensions
#:nodoc:
module
Float
#:nodoc:
module
Time
# Deprication helper methods not available as core_ext is loaded first.
def
years
::
ActiveSupport
::
Deprecation
.
warn
(
self
.
class
.
deprecated_method_warning
(
:years
),
caller
)
years_without_deprecation
end
def
months
::
ActiveSupport
::
Deprecation
.
warn
(
self
.
class
.
deprecated_method_warning
(
:months
),
"Fractional months are not respected. Use .to_i before "
,
caller
)
months_without_deprecation
end
def
months_without_deprecation
ActiveSupport
::
Duration
.
new
(
self
*
30
.
days
,
[[
:months
,
self
]])
end
alias
:month
:months
def
years_without_deprecation
ActiveSupport
::
Duration
.
new
(
self
*
365.25
.
days
,
[[
:years
,
self
]])
end
alias
:year
:years
end
end
end
end
\ No newline at end of file
activesupport/lib/active_support/core_ext/integer.rb
浏览文件 @
d599b800
require
'active_support/core_ext/integer/even_odd'
require
'active_support/core_ext/integer/inflections'
require
'active_support/core_ext/integer/time'
class
Integer
#:nodoc:
include
ActiveSupport
::
CoreExtensions
::
Integer
::
EvenOdd
include
ActiveSupport
::
CoreExtensions
::
Integer
::
Inflections
include
ActiveSupport
::
CoreExtensions
::
Integer
::
Time
end
activesupport/lib/active_support/core_ext/integer/time.rb
0 → 100644
浏览文件 @
d599b800
module
ActiveSupport
#:nodoc:
module
CoreExtensions
#:nodoc:
module
Integer
#:nodoc:
# Enables the use of time calculations and declarations, like 45.minutes + 2.hours + 4.years.
#
# These methods use Time#advance for precise date calculations when using from_now, ago, etc.
# as well as adding or subtracting their results from a Time object. For example:
#
# # equivalent to Time.now.advance(:months => 1)
# 1.month.from_now
#
# # equivalent to Time.now.advance(:years => 2)
# 2.years.from_now
#
# # equivalent to Time.now.advance(:months => 4, :years => 5)
# (4.months + 5.years).from_now
#
# While these methods provide precise calculation when used as in the examples above, care
# should be taken to note that this is not true if the result of `months', `years', etc is
# converted before use:
#
# # equivalent to 30.days.to_i.from_now
# 1.month.to_i.from_now
#
# # equivalent to 365.25.days.to_f.from_now
# 1.year.to_f.from_now
#
# In such cases, Ruby's core
# Date[http://stdlib.rubyonrails.org/libdoc/date/rdoc/index.html] and
# Time[http://stdlib.rubyonrails.org/libdoc/time/rdoc/index.html] should be used for precision
# date and time arithmetic
module
Time
def
months
ActiveSupport
::
Duration
.
new
(
self
*
30
.
days
,
[[
:months
,
self
]])
end
alias
:month
:months
def
years
ActiveSupport
::
Duration
.
new
(
self
*
365.25
.
days
,
[[
:years
,
self
]])
end
alias
:year
:years
end
end
end
end
activesupport/lib/active_support/core_ext/numeric/time.rb
浏览文件 @
d599b800
...
...
@@ -60,16 +60,6 @@ def fortnights
end
alias
:fortnight
:fortnights
def
months
ActiveSupport
::
Duration
.
new
(
self
*
30
.
days
,
[[
:months
,
self
]])
end
alias
:month
:months
def
years
ActiveSupport
::
Duration
.
new
(
self
*
365.25
.
days
,
[[
:years
,
self
]])
end
alias
:year
:years
# Reads best without arguments: 10.minutes.ago
def
ago
(
time
=
::
Time
.
now
)
time
-
self
...
...
activesupport/test/core_ext/duration_test.rb
浏览文件 @
d599b800
...
...
@@ -64,6 +64,24 @@ def test_since_and_ago_with_fractional_weeks
assert_equal
((
7
*
36
).
hours
.
ago
,
1.5
.
weeks
.
ago
)
assert_equal
((
7
*
24
*
1.7
).
hours
.
ago
,
1.7
.
weeks
.
ago
)
end
def
test_deprecated_fractional_years
assert_deprecated
{
1.0
.
years
}
assert_deprecated
{
1.5
.
years
}
assert_not_deprecated
{
1
.
years
}
assert_deprecated
{
1.0
.
year
}
assert_deprecated
{
1.5
.
year
}
assert_not_deprecated
{
1
.
year
}
end
def
test_deprecated_fractional_months
assert_deprecated
{
1.5
.
months
}
assert_deprecated
{
1.0
.
months
}
assert_not_deprecated
{
1
.
months
}
assert_deprecated
{
1.5
.
month
}
assert_deprecated
{
1.0
.
month
}
assert_not_deprecated
{
1
.
month
}
end
def
test_since_and_ago_anchored_to_time_now_when_time_zone_default_not_set
Time
.
zone_default
=
nil
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录