class Biz::Calculation::Active

Attributes

schedule[R]
time[R]

Public Class Methods

new(schedule, time) click to toggle source
# File lib/biz/calculation/active.rb, line 7
def initialize(schedule, time)
  @schedule = schedule
  @time     = time
end

Public Instance Methods

result() click to toggle source
# File lib/biz/calculation/active.rb, line 12
def result
  return in_hours? && active? if schedule.shifts.none?

  schedule.periods.after(time).first.contains?(time)
end

Private Instance Methods

active?() click to toggle source
# File lib/biz/calculation/active.rb, line 27
def active?
  schedule.holidays.none? { |holiday| holiday.contains?(time) } &&
    schedule.breaks.none? { |brake| brake.contains?(time) }
end
in_hours?() click to toggle source
# File lib/biz/calculation/active.rb, line 23
def in_hours?
  schedule.intervals.any? { |interval| interval.contains?(time) }
end