Class: Hyalite::UpdateQueue

Inherits:
Object show all
Defined in:
lib/hyalite/update_queue.rb

Class Method Summary collapse

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