Module: Philiprehberger::FeatureFlag::Scheduling
- Included in:
- Philiprehberger::FeatureFlag
- Defined in:
- lib/philiprehberger/feature_flag/scheduling.rb
Instance Method Summary collapse
- #reset_schedules! ⇒ Object
-
#schedule(flag, enable_at: nil, disable_at: nil) ⇒ Hash
Register a time-bounded activation window for
flag. - #schedule_for(flag) ⇒ Object
- #scheduled_active?(flag) ⇒ Boolean
Instance Method Details
#reset_schedules! ⇒ Object
33 34 35 |
# File 'lib/philiprehberger/feature_flag/scheduling.rb', line 33 def reset_schedules! @schedules = nil end |
#schedule(flag, enable_at: nil, disable_at: nil) ⇒ Hash
Register a time-bounded activation window for flag. A flag is considered active when Time.now is at or after enable_at (if set) and strictly before disable_at (if set).
16 17 18 19 |
# File 'lib/philiprehberger/feature_flag/scheduling.rb', line 16 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
21 22 23 |
# File 'lib/philiprehberger/feature_flag/scheduling.rb', line 21 def schedule_for(flag) @schedules&.dig(flag.to_sym) end |
#scheduled_active?(flag) ⇒ Boolean
25 26 27 28 29 30 31 |
# File 'lib/philiprehberger/feature_flag/scheduling.rb', line 25 def scheduled_active?(flag) sched = schedule_for(flag) return true if sched.nil? now = Time.now check_schedule_window(now, sched) end |