Class: Reactive::Scheduler
- Inherits:
-
Object
- Object
- Reactive::Scheduler
- Defined in:
- lib/Reactive/scheduler.rb
Instance Method Summary collapse
- #schedule_once(at, action) ⇒ Object
- #schedule_periodic(at, action, wrapper = Disposable::Wrapper.new) ⇒ Object
Instance Method Details
#schedule_once(at, action) ⇒ Object
18 19 20 |
# File 'lib/Reactive/scheduler.rb', line 18 def schedule_once(at, action) EventMachine.add_timer(at / 1000.0, action) end |
#schedule_periodic(at, action, wrapper = Disposable::Wrapper.new) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/Reactive/scheduler.rb', line 4 def schedule_periodic(at, action, wrapper = Disposable::Wrapper.new) return unless wrapper callback = lambda do new_at = action.() if new_at #defined ~ schedule_periodic(new_at, action, wrapper) else wrapper.unwrap end end wrapper.target = schedule_once(at, callback) end |