Provides accurate date and time measurements using Date#advance and Time#advance, respectively. It mainly supports the methods on Numeric, such as in this example:
1.month.ago # equivalent to Time.now.advance(:months => -1)
Methods
Attributes
[RW] | parts | |
[RW] | value |
Public Instance methods
[ show source ]
# File activesupport/lib/active_support/duration.rb, line 18 18: def +(other) 19: if Duration === other 20: Duration.new(value + other.value, @parts + other.parts) 21: else 22: Duration.new(value + other, @parts + [[:seconds, other]]) 23: end 24: end
[ show source ]
# File activesupport/lib/active_support/duration.rb, line 28 28: def -(other) 29: self + (-other) 30: 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 42 42: def ==(other) 43: if Duration === other 44: other.value == value 45: else 46: other == value 47: end 48: end
Calculates a new Time or Date that is as far in the past as this Duration represents.
This method is also aliased as
until
[ show source ]
# File activesupport/lib/active_support/duration.rb, line 63 63: def ago(time = ::Time.current) 64: sum(-1, time) 65: end
Alias for since
Calculates a new Time or Date that is as far in the future as this Duration represents.
This method is also aliased as
from_now
[ show source ]
# File activesupport/lib/active_support/duration.rb, line 56 56: def since(time = ::Time.current) 57: sum(1, time) 58: end
Alias for ago