method

sum

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