Sha256: f1fff0347d51dba1d9b265de4b28c1726bf0e3ccae4e67abadcc193c1a4e9322

Contents?: true

Size: 602 Bytes

Versions: 3

Compression:

Stored size: 602 Bytes

Contents

# frozen_string_literal: true

require "active_support/core_ext/time"

module SuperSpreader
  class PeakSchedule
    def initialize(on_peak_wday_range:, on_peak_hour_range:, timezone:)
      @on_peak_wday_range = on_peak_wday_range
      @on_peak_hour_range = on_peak_hour_range
      @timezone = timezone
    end

    def on_peak?(time = Time.current)
      time_in_zone = time.in_time_zone(@timezone)

      is_on_peak_day = @on_peak_wday_range.cover?(time_in_zone.wday)
      is_on_peak_hour = @on_peak_hour_range.cover?(time_in_zone.hour)

      is_on_peak_day && is_on_peak_hour
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
super_spreader-0.2.1 lib/super_spreader/peak_schedule.rb
super_spreader-0.2.0 lib/super_spreader/peak_schedule.rb
super_spreader-0.1.0.beta2 lib/super_spreader/peak_schedule.rb