method
sum
v5.0.0.1 -
Show latest stable
- Class:
ActiveSupport::Duration
sum(sign, time = ::Time.current)protected
No documentation available.
# File activesupport/lib/active_support/duration.rb, line 157
def sum(sign, time = ::Time.current) #:nodoc:
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