Class: Interferon::WorkHoursHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/interferon/work_hours_helper.rb

Constant Summary collapse

DEFAULT_WORK_DAYS =
(1..5)
DEFAULT_WORK_HOURS =
(9..16)
DEFAULT_WORK_TIMEZONE =
'America/Los_Angeles'.freeze
DEFAULT_WORK_ARGS =
{
  hours: DEFAULT_WORK_HOURS,
  days: DEFAULT_WORK_DAYS,
  timezone: DEFAULT_WORK_TIMEZONE,
}.freeze

Class Method Summary collapse

Class Method Details

.is_work_hour?(time, args = {}) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
17
18
19
# File 'lib/interferon/work_hours_helper.rb', line 14

def self.is_work_hour?(time, args = {})
  args = args.merge(DEFAULT_WORK_ARGS)
  tz = TZInfo::Timezone.get args[:timezone]
  time_in_tz = time + tz.period_for_utc(time).utc_offset
  args[:days].include?(time_in_tz.wday) && args[:hours].include?(time_in_tz.hour)
end