method
sum
v8.1.1 -
Show latest stable
- Class:
ActiveSupport::Duration
sum(sign, time = ::Time.current)private
No documentation available.
# File activesupport/lib/active_support/duration.rb, line 486
def sum(sign, time = ::Time.current)
unless time.acts_like?(:time) || time.acts_like?(:date)
raise ::ArgumentError, "expected a time or date, got #{time.inspect}"
end
if @parts.empty?
time.since(sign * value)
else
@parts.each do |type, number|
t = time
time =
if type == :seconds
t.since(sign * number)
elsif type == :minutes
t.since(sign * number * 60)
elsif type == :hours
t.since(sign * number * 3600)
else
t.advance(type => sign * number)
end
end
time
end
end