class method self.build

Ruby on Rails 5.1.7

Since v5.1.7

Available in: v5.1.7 v5.2.8.1 v6.0.6.1 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3.2 v8.0.5.1 v8.1.3.1 edge

Signature

self.build(value)

Creates a new Duration from a seconds value that is converted to the individual parts:

ActiveSupport::Duration.build(31556952).parts # => {:years=>1}
ActiveSupport::Duration.build(2716146).parts  # => {:months=>1, :days=>1}

Parameters

value req
Source
# File activesupport/lib/active_support/duration.rb, line 182
      def build(value)
        parts = {}
        remainder = value.to_f

        PARTS.each do |part|
          unless part == :seconds
            part_in_seconds = PARTS_IN_SECONDS[part]
            parts[part] = remainder.div(part_in_seconds)
            remainder = (remainder % part_in_seconds).round(9)
          end
        end

        parts[:seconds] = remainder
        parts.reject! { |k, v| v.zero? }

        new(value, parts)
      end

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

Defined in ActiveSupport::Duration

Type at least 2 characters to search.

Use the arrow keys to navigate results, Enter to open one, Escape to close.

Keyboard shortcuts

/
Focus search
⌘K / Ctrl-K
Command palette
?
This help
Esc
Close