class ActiveSupport::Duration
Provides accurate date and time measurements using Date#advance and Time#advance, respectively. It mainly supports the methods on Numeric.
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/active_support/duration.rb, line 18 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/active_support/duration.rb, line 47 def ==(other) if Duration === other other.value == value else other == value end end
ago(time = ::Time.current)
click to toggle source
Calculates a new Time or Date that is as far in the past as this Duration represents.
# File lib/active_support/duration.rb, line 84 def ago(time = ::Time.current) sum(-1, time) end
Also aliased as: until
eql?(other)
click to toggle source
Returns true
if other
is also a Duration instance, which has the same parts as
this one.
# File lib/active_support/duration.rb, line 61 def eql?(other) Duration === other && other.value.eql?(value) end
hash()
click to toggle source
# File lib/active_support/duration.rb, line 65 def hash @value.hash end
respond_to_missing?(method, include_private=false)
click to toggle source
# File lib/active_support/duration.rb, line 101 def respond_to_missing?(method, include_private=false) #:nodoc @value.respond_to?(method, include_private) end
since(time = ::Time.current)
click to toggle source
Calculates a new Time or Date that is as far in the future as this Duration represents.
# File lib/active_support/duration.rb, line 77 def since(time = ::Time.current) sum(1, time) end
Also aliased as: from_now
to_s()
click to toggle source
# File lib/active_support/duration.rb, line 55 def to_s @value.to_s end