instance method advance

Ruby on Rails 2.3.18

Since v2.2.3 Last seen in v2.3.18

Available in: v2.2.3 v2.3.18

Signature

advance(options)

Uses Date to provide precise Time calculations for years, months, and days. The options parameter takes a hash with any of these keys: :years, :months, :weeks, :days, :hours, :minutes, :seconds.

Parameters

options req
Source
# File activesupport/lib/active_support/core_ext/time/calculations.rb, line 102
        def advance(options)
          unless options[:weeks].nil?
            options[:weeks], partial_weeks = options[:weeks].divmod(1)
            options[:days] = (options[:days] || 0) + 7 * partial_weeks
          end
          
          unless options[:days].nil?
            options[:days], partial_days = options[:days].divmod(1)
            options[:hours] = (options[:hours] || 0) + 24 * partial_days
          end
          
          d = to_date.advance(options)
          time_advanced_by_date = change(:year => d.year, :month => d.month, :day => d.day)
          seconds_to_advance = (options[:seconds] || 0) + (options[:minutes] || 0) * 60 + (options[:hours] || 0) * 3600
          seconds_to_advance == 0 ? time_advanced_by_date : time_advanced_by_date.since(seconds_to_advance)
        end

Defined in activesupport/lib/active_support/core_ext/time/calculations.rb line 102 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveSupport::CoreExtensions::Time::Calculations

Type at least 2 characters to search.

↑↓ navigate · open · esc close