Completed
Push — master ( c94e19...3d0615 )
by Yoh
53s
created

client/hyalite/update_queue.rb (3 issues)

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
This code seems to be duplicated in your project.
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
This code seems to be duplicated in your project.
Loading history...
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
This code seems to be duplicated in your project.
Loading history...
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