Module: Philiprehberger::FeatureFlag::Scheduling

Included in:
Philiprehberger::FeatureFlag
Defined in:
lib/philiprehberger/feature_flag/scheduling.rb

Instance Method Summary collapse

Instance Method Details

#reset_schedules!Object



23
24
25
# File 'lib/philiprehberger/feature_flag/scheduling.rb', line 23

def reset_schedules!
  @schedules = nil
end

#schedule(flag, enable_at: nil, disable_at: nil) ⇒ Object



6
7
8
9
# File 'lib/philiprehberger/feature_flag/scheduling.rb', line 6

def schedule(flag, enable_at: nil, disable_at: nil)
  @schedules ||= {}
  @schedules[flag.to_sym] = { enable_at: enable_at, disable_at: disable_at }
end

#schedule_for(flag) ⇒ Object



11
12
13
# File 'lib/philiprehberger/feature_flag/scheduling.rb', line 11

def schedule_for(flag)
  @schedules&.dig(flag.to_sym)
end

#scheduled_active?(flag) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
18
19
20
21
# File 'lib/philiprehberger/feature_flag/scheduling.rb', line 15

def scheduled_active?(flag)
  sched = schedule_for(flag)
  return true if sched.nil?

  now = Time.now
  check_schedule_window(now, sched)
end