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
Adds another Duration or a Numeric to this Duration. Numeric values are treated as seconds.
# File activesupport/lib/active_support/duration.rb, line 19
def +(other)
if Duration === other
Duration.new(value + other.value, @parts + other.parts)
else
Duration.new(value + other, @parts + [[:seconds, other]])
end
end Returns true if other is also a Duration instance with the same value, or if other == value.
# File activesupport/lib/active_support/duration.rb, line 44
def ==(other)
if Duration === other
other.value == value
else
other == value
end
end Calculates a new Time or Date that is as far in the past as this Duration represents.
# File activesupport/lib/active_support/duration.rb, line 71 def ago(time = ::Time.current) sum(-1, time) end
Also aliased as: until
# File activesupport/lib/active_support/duration.rb, line 52 def eql?(other) other.is_a?(Duration) && self == other end
from_now(time = ::Time.current)
Alias for: since
Calculates a new Time or Date that is as far in the future as this Duration represents.
# File activesupport/lib/active_support/duration.rb, line 64 def since(time = ::Time.current) sum(1, time) end
Also aliased as: from_now
until(time = ::Time.current)
Alias for: ago
© 2004–2016 David Heinemeier Hansson
Licensed under the MIT License.