class InactiveSupport::Duration
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)
Attributes
parts[RW]
value[RW]
Public Instance Methods
+(other)
click to toggle source
Adds another Duration
or a Numeric
to this Duration
. Numeric
values are treated as seconds.
# File lib/inactive_support/duration.rb, line 16 def +(other) if Duration === other Duration.new(value + other.value, @parts + other.parts) else Duration.new(value + other, @parts + [[:seconds, other]]) end end
-(other)
click to toggle source
==(other)
click to toggle source
Returns true if other
is also a Duration
instance with the same value
, or if other == value
.
# File lib/inactive_support/duration.rb, line 40 def ==(other) if Duration === other other.value == value else other == value end end
ago(time = ::Time.now)
click to toggle source
Calculates a new Time
or Date that is as far in the past as this Duration
represents.
# File lib/inactive_support/duration.rb, line 61 def ago(time = ::Time.now) sum(-1, time) end
Also aliased as: until