instance method sum

Ruby on Rails 5.2.8.1

Since v5.2.8.1 Private

Available in: v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

sum(sign, time = ::Time.current)

No documentation comment.

Parameters

sign req
time opt = ::Time.current
Source
# File activesupport/lib/active_support/duration.rb, line 402
      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.inject(time) do |t, (type, number)|
            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
        end
      end

Defined in activesupport/lib/active_support/duration.rb line 402 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveSupport::Duration

Type at least 2 characters to search.

↑↓ navigate · open · esc close