Sha256: d5a587dc04a8d8cac33e8f7fc512af5d88c5e32803373f7cc7fd225f8dda8bd6

Contents?: true

Size: 988 Bytes

Versions: 9

Compression:

Stored size: 988 Bytes

Contents

require_relative 'live_query'
require 'volt/utils/generic_pool'

class LiveQueryPool < GenericPool
  def initialize(data_store)
    super()
    @data_store = data_store
  end

  def lookup(collection, query)
    query = normalize_query(query)

    return super(collection, query)
  end

  def updated_collection(collection, skip_channel)
    lookup_all(collection).each do |live_query|
      puts "RUN ON: #{live_query} with #{live_query.instance_variable_get('@channels').inspect}"
      live_query.run(skip_channel)
    end
  end

  private
    # Creates the live query if it doesn't exist, and stores it so it
    # can be found later.
    def create(collection, query)
      # If not already setup, create a new one for this collection/query
      return LiveQuery.new(self, @data_store, collection, query)
    end

    def normalize_query(query)
      # TODO: add something to sort query properties so the queries are
      # always compared the same.
      return query
    end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
volt-0.7.10 app/volt/tasks/live_query/live_query_pool.rb
volt-0.7.9 app/volt/tasks/live_query/live_query_pool.rb
volt-0.7.8 app/volt/tasks/live_query/live_query_pool.rb
volt-0.7.7 app/volt/tasks/live_query/live_query_pool.rb
volt-0.7.6 app/volt/tasks/live_query/live_query_pool.rb
volt-0.7.5 app/volt/tasks/live_query/live_query_pool.rb
volt-0.7.4 app/volt/tasks/live_query/live_query_pool.rb
volt-0.7.3 app/volt/tasks/live_query/live_query_pool.rb
volt-0.7.2 app/volt/tasks/live_query/live_query_pool.rb