Sha256: 5f10c45acaeb14ebe76050bd3e5e21a6ba2aaf85046562680da0b59fed4325f2

Contents?: true

Size: 1.8 KB

Versions: 20

Compression:

Stored size: 1.8 KB

Contents

module Hyalite
  class UpdateQueue
    class << self
      def is_mounted(public_instance)
        internal_instance = Hyalite.instance_map[public_instance]
        if internal_instance
          !!internal_instance.rendered_component
        else
          false
        end
      end

      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

      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

      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

      def enqueue_update(internal_instance)
        Hyalite.updates.enqueue_update(internal_instance)
      end

      def enqueue_element_internal(internal_instance, new_element)
        internal_instance.pending_element = new_element
        enqueue_update(internal_instance)
      end

      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
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
hyalite-0.3.4 lib/hyalite/update_queue.rb
hyalite-0.3.2 lib/hyalite/update_queue.rb
hyalite-0.3.1 lib/hyalite/update_queue.rb
hyalite-0.3.0 lib/hyalite/update_queue.rb
hyalite-0.2.8 lib/hyalite/update_queue.rb
hyalite-0.2.7 lib/hyalite/update_queue.rb
hyalite-0.2.6 lib/hyalite/update_queue.rb
hyalite-0.2.5 lib/hyalite/update_queue.rb
hyalite-0.2.4 lib/hyalite/update_queue.rb
hyalite-0.2.3 lib/hyalite/update_queue.rb
hyalite-0.2.2 lib/hyalite/update_queue.rb
hyalite-0.2.1 lib/hyalite/update_queue.rb
hyalite-0.2.0 lib/hyalite/update_queue.rb
hyalite-0.1.1 client/hyalite/update_queue.rb
hyalite-0.1.0 client/hyalite/update_queue.rb
hyalite-0.0.6 client/hyalite/update_queue.rb
hyalite-0.0.5 client/hyalite/update_queue.rb
hyalite-0.0.4 client/hyalite/update_queue.rb
hyalite-0.0.3 client/hyalite/update_queue.rb
hyalite-0.0.2 client/hyalite/update_queue.rb