Method: Hyperstack::Internal::State::Mapper.observing
- Defined in:
- lib/hyperstack/internal/state/mapper.rb
.observing(observer, immediate_update, rendering, update_objects) ⇒ Object
Once the observer’s block completes execution, the context instance variables are restored.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/hyperstack/internal/state/mapper.rb', line 45 def observing(observer, immediate_update, rendering, update_objects) saved_context = [@current_observer, @immediate_update] @current_observer = observer @immediate_update = immediate_update && observer if rendering @rendering_level += 1 observed!(observer) observed!(observer.class) end return_value = yield update_objects_to_observe(observer) if update_objects return_value ensure @current_observer, @immediate_update = saved_context @rendering_level -= 1 if rendering return_value end |