mirror of https://github.com/rails/rails
Added Fixnum#ago/until, Fixnum#since/from_now #450 [bitsweat]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@371 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
ebf424061d
commit
14ed815b1c
|
@ -1,3 +1,5 @@
|
|||
* Added Fixnum#ago/until, Fixnum#since/from_now #450 [bitsweat]
|
||||
|
||||
* Added that Inflector now accepts Symbols and Classes by calling .to_s on the word supplied
|
||||
|
||||
* Added time unit extensions to Fixnum that'll return the period in seconds, like 2.days + 4.hours.
|
|
@ -33,4 +33,20 @@ class Fixnum
|
|||
self * 365.days
|
||||
end
|
||||
alias :year :years
|
||||
|
||||
# Reads best without arguments: 10.minutes.ago
|
||||
def ago(time = Time.now)
|
||||
time - self
|
||||
end
|
||||
|
||||
# Reads best with argument: 10.minutes.until(time)
|
||||
alias :until :ago
|
||||
|
||||
# Reads best with argument: 10.minutes.since(time)
|
||||
def since(time = Time.now)
|
||||
time + self
|
||||
end
|
||||
|
||||
# Reads best without arguments: 10.minutes.from_now
|
||||
alias :from_now :since
|
||||
end
|
|
@ -2,15 +2,22 @@ require 'test/unit'
|
|||
require File.dirname(__FILE__) + '/../../lib/core_ext/fixnum_ext'
|
||||
|
||||
class FixnumExtTest < Test::Unit::TestCase
|
||||
def test_time_units
|
||||
expected = {
|
||||
def setup
|
||||
@now = Time.now
|
||||
@seconds = {
|
||||
1.minute => 60,
|
||||
10.minutes => 600,
|
||||
1.hour + 15.minutes => 4500,
|
||||
2.days + 4.hours + 30.minutes => 189000,
|
||||
5.years + 1.month + 1.fortnight => 161481600
|
||||
}
|
||||
end
|
||||
|
||||
expected.each { |actual, expected| assert_equal expected, actual }
|
||||
def test_time_units
|
||||
@seconds.each do |actual, expected|
|
||||
assert_equal expected, actual
|
||||
assert_equal expected.since(@now), @now + actual
|
||||
assert_equal expected.until(@now), @now - actual
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue