Provides accurate date and time measurements using Date#advance and Time#advance, respectively. It mainly supports the methods on Numeric. Example:
1.month.ago # equivalent to Time.now.advance(:months => -1)
Methods
Attributes
| [RW] | value | |
| [RW] | parts |
Public Instance methods
[ show source ]
# File activesupport/lib/active_support/duration.rb, line 20
20: def +(other)
21: if Duration === other
22: Duration.new(value + other.value, @parts + other.parts)
23: else
24: Duration.new(value + other, @parts + [[:seconds, other]])
25: end
26: end
[ show source ]
# File activesupport/lib/active_support/duration.rb, line 30
30: def -(other)
31: self + (-other)
32: end
Returns true if other is also a Duration instance with the same value, or if other == value.
[ show source ]
# File activesupport/lib/active_support/duration.rb, line 45
45: def ==(other)
46: if Duration === other
47: other.value == value
48: else
49: other == value
50: end
51: end
This method is also aliased as
until
[ show source ]
# File activesupport/lib/active_support/duration.rb, line 68
68: def ago(time = ::Time.current)
69: sum(1, time)
70: end
This method is also aliased as
from_now
[ show source ]
# File activesupport/lib/active_support/duration.rb, line 61
61: def since(time = ::Time.current)
62: sum(1, time)
63: end