Class: Hyalite::UpdateQueue
Class Method Summary collapse
- .enqueue_callback(public_instance, &block) ⇒ Object
- .enqueue_callback_internal(internal_instance, &callback) ⇒ Object
- .enqueue_element_internal(internal_instance, new_element) ⇒ Object
- .enqueue_force_update(public_instance) ⇒ Object
- .enqueue_set_state(public_instance, partial_state) ⇒ Object
- .enqueue_update(internal_instance) ⇒ Object
- .is_mounted(public_instance) ⇒ Object
Class Method Details
.enqueue_callback(public_instance, &block) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/hyalite/update_queue.rb', line 13 def enqueue_callback(public_instance, &block) internal_instance = Hyalite.instance_map[public_instance] return nil unless internal_instance internal_instance.pending_callbacks ||= [] internal_instance.pending_callbacks << block enqueue_update(internal_instance); end |
.enqueue_callback_internal(internal_instance, &callback) ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'lib/hyalite/update_queue.rb', line 52 def enqueue_callback_internal(internal_instance, &callback) if internal_instance.pending_callbacks internal_instance.pending_callbacks << callback else internal_instance.pending_callbacks = [callback] end enqueue_update(internal_instance) end |
.enqueue_element_internal(internal_instance, new_element) ⇒ Object
47 48 49 50 |
# File 'lib/hyalite/update_queue.rb', line 47 def enqueue_element_internal(internal_instance, new_element) internal_instance.pending_element = new_element enqueue_update(internal_instance) end |
.enqueue_force_update(public_instance) ⇒ Object
33 34 35 36 37 38 39 40 41 |
# File 'lib/hyalite/update_queue.rb', line 33 def enqueue_force_update(public_instance) internal_instance = Hyalite.instance_map[public_instance] return unless internal_instance internal_instance.pending_force_update = true enqueue_update(internal_instance) end |
.enqueue_set_state(public_instance, partial_state) ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/hyalite/update_queue.rb', line 22 def enqueue_set_state(public_instance, partial_state) internal_instance = Hyalite.instance_map[public_instance] return unless internal_instance queue = internal_instance.pending_state_queue || (internal_instance.pending_state_queue = []) queue.push(partial_state) enqueue_update(internal_instance); end |
.enqueue_update(internal_instance) ⇒ Object
43 44 45 |
# File 'lib/hyalite/update_queue.rb', line 43 def enqueue_update(internal_instance) Hyalite.updates.enqueue_update(internal_instance) end |
.is_mounted(public_instance) ⇒ Object
4 5 6 7 8 9 10 11 |
# File 'lib/hyalite/update_queue.rb', line 4 def is_mounted(public_instance) internal_instance = Hyalite.instance_map[public_instance] if internal_instance !!internal_instance.rendered_component else false end end |