Sha256: 2f49231974f61672d61d1e2efaec829c3df33dc6ac51074b4d336230a89d45ef

Contents?: true

Size: 579 Bytes

Versions: 18

Compression:

Stored size: 579 Bytes

Contents

require 'mongo'

class DataStore
  def initialize
  end

  def db
    @@db ||= Volt::DataStore.fetch
  end

  def query(collection, query)
    allowed_methods = ['find', 'skip', 'limit']

    cursor = db[collection]

    query.each do |query_part|
      method_name, *args = query_part

      unless allowed_methods.include?(method_name.to_s)
        raise "`#{method_name}` is not part of a valid query"
      end

      cursor = cursor.send(method_name, *args)
    end

    cursor.to_a
  end

  def drop_database
    db.connection.drop_database(Volt.config.db_name)
  end

end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
volt-0.9.1.pre4 app/volt/tasks/live_query/data_store.rb
volt-0.9.1.pre3 app/volt/tasks/live_query/data_store.rb
volt-0.9.1.pre2 app/volt/tasks/live_query/data_store.rb
volt-0.9.1.pre1 app/volt/tasks/live_query/data_store.rb
volt-0.9.0 app/volt/tasks/live_query/data_store.rb
volt-0.9.0.pre7 app/volt/tasks/live_query/data_store.rb
volt-0.9.0.pre6 app/volt/tasks/live_query/data_store.rb
volt-0.9.0.pre5 app/volt/tasks/live_query/data_store.rb
volt-0.9.0.pre4 app/volt/tasks/live_query/data_store.rb
volt-0.9.0.pre3 app/volt/tasks/live_query/data_store.rb
volt-0.9.0.pre2 app/volt/tasks/live_query/data_store.rb
volt-0.9.0.pre1 app/volt/tasks/live_query/data_store.rb
volt-0.8.27.beta9 app/volt/tasks/live_query/data_store.rb
volt-0.8.27.beta8 app/volt/tasks/live_query/data_store.rb
volt-0.8.27.beta7 app/volt/tasks/live_query/data_store.rb
volt-0.8.27.beta6 app/volt/tasks/live_query/data_store.rb
volt-0.8.27.beta5 app/volt/tasks/live_query/data_store.rb
volt-0.8.27.beta4 app/volt/tasks/live_query/data_store.rb