1 | module Hyalite |
||
2 | class UpdateQueue |
||
3 | class << self |
||
4 | def is_mounted(public_instance) |
||
5 | internal_instance = Hyalite.instance_map[public_instance] |
||
6 | if internal_instance |
||
7 | !!internal_instance.rendered_component |
||
8 | else |
||
9 | false |
||
10 | end |
||
11 | end |
||
12 | View Code Duplication | ||
0 ignored issues
–
show
Duplication
introduced
by
Loading history...
|
|||
13 | def enqueue_callback(public_instance, &block) |
||
14 | internal_instance = Hyalite.instance_map[public_instance] |
||
15 | return nil unless internal_instance |
||
16 | |||
17 | internal_instance.pending_callbacks ||= [] |
||
18 | internal_instance.pending_callbacks << block |
||
19 | enqueue_update(internal_instance); |
||
20 | end |
||
21 | View Code Duplication | ||
0 ignored issues
–
show
|
|||
22 | def enqueue_set_state(public_instance, partial_state) |
||
23 | internal_instance = Hyalite.instance_map[public_instance] |
||
24 | |||
25 | return unless internal_instance |
||
26 | |||
27 | queue = internal_instance.pending_state_queue || (internal_instance.pending_state_queue = []) |
||
28 | queue.push(partial_state) |
||
29 | |||
30 | enqueue_update(internal_instance); |
||
31 | end |
||
32 | View Code Duplication | ||
0 ignored issues
–
show
|
|||
33 | def enqueue_force_update(public_instance) |
||
34 | internal_instance = Hyalite.instance_map[public_instance] |
||
35 | |||
36 | return unless internal_instance |
||
37 | |||
38 | internal_instance.pending_force_update = true |
||
39 | |||
40 | enqueue_update(internal_instance) |
||
41 | end |
||
42 | |||
43 | def enqueue_update(internal_instance) |
||
44 | Hyalite.updates.enqueue_update(internal_instance) |
||
45 | end |
||
46 | |||
47 | def enqueue_element_internal(internal_instance, new_element) |
||
48 | internal_instance.pending_element = new_element |
||
49 | enqueue_update(internal_instance) |
||
50 | end |
||
51 | |||
52 | def enqueue_callback_internal(internal_instance, &callback) |
||
53 | if internal_instance.pending_callbacks |
||
54 | internal_instance.pending_callbacks << callback |
||
55 | else |
||
56 | internal_instance.pending_callbacks = [callback] |
||
57 | end |
||
58 | enqueue_update(internal_instance) |
||
59 | end |
||
60 | end |
||
61 | end |
||
62 | end |
||
63 |