Sha256: bfaa55af0f6d3ed003bc3e9c988d7836b82ced3c9a731fb9a29bb1e49bcf0b32

Contents?: true

Size: 537 Bytes

Versions: 13

Compression:

Stored size: 537 Bytes

Contents

# frozen_string_literal: true

module Montrose
  class Frequency
    class Weekly < Frequency
      def include?(time)
        (weeks_since_start(time) % @interval).zero?
      end

      def to_cron
        raise "Intervals unsupported" unless @interval == 1

        "#{@starts.min} #{@starts.hour} * * #{@starts.wday}"
      end

      private

      def weeks_since_start(time)
        ((time.beginning_of_week - base_date) / 1.week).round
      end

      def base_date
        @starts.beginning_of_week
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
montrose-0.18.0 lib/montrose/frequency/weekly.rb
montrose-0.17.0 lib/montrose/frequency/weekly.rb
montrose-0.16.0 lib/montrose/frequency/weekly.rb
montrose-0.15.0 lib/montrose/frequency/weekly.rb
montrose-0.14.0 lib/montrose/frequency/weekly.rb
montrose-0.13.0 lib/montrose/frequency/weekly.rb
montrose-0.12.0 lib/montrose/frequency/weekly.rb
montrose-0.11.2 lib/montrose/frequency/weekly.rb
montrose-0.11.1 lib/montrose/frequency/weekly.rb
montrose-0.11.0 lib/montrose/frequency/weekly.rb
montrose-0.10.1 lib/montrose/frequency/weekly.rb
montrose-0.10.0 lib/montrose/frequency/weekly.rb
montrose-0.9.0 lib/montrose/frequency/weekly.rb