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