method
sum
v5.2.3 -
Show latest stable
- Class:
ActiveSupport::Duration
sum(sign, time = ::Time.current)private
No documentation available.
# File activesupport/lib/active_support/duration.rb, line 402
def sum(sign, time = ::Time.current)
parts.inject(time) do |t, (type, number)|
if t.acts_like?(:time) || t.acts_like?(:date)
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
else
raise ::ArgumentError, "expected a time or date, got #{time.inspect}"
end
end
end