class NCMB::DataStore

Public Class Methods

new(name, fields = {}, alc = "") click to toggle source
# File lib/ncmb/data_store.rb, line 5
def initialize(name, fields = {}, alc = "")
  @@name    = name
  @@alc     = alc
  @@fields  = fields
  @@queries = {}
  @@items   = nil
end

Public Instance Methods

[](count) click to toggle source
# File lib/ncmb/data_store.rb, line 74
def [](count)
  return @@items[count] unless @@items.nil?
  get(@@queries)[count]
end
call(name) click to toggle source
# File lib/ncmb/data_store.rb, line 25
def call(name)
  @@fields[name.to_sym] || NoMethod
end
columns() click to toggle source
# File lib/ncmb/data_store.rb, line 13
def columns
  @@fields.keys
end
count(count) click to toggle source
# File lib/ncmb/data_store.rb, line 52
def count(count)
  @@queries[:count] = count
  self
end
each(&block) click to toggle source
# File lib/ncmb/data_store.rb, line 29
def each(&block)
  @@items.each(&block)
end
each_with_index(&block) click to toggle source
# File lib/ncmb/data_store.rb, line 33
def each_with_index(&block)
  @@items.each_with_index(&block)
end
first() click to toggle source
# File lib/ncmb/data_store.rb, line 42
def first
  return @@items.first unless @@items.nil?
  get(@@queries).first
end
get(queries = {}) click to toggle source
# File lib/ncmb/data_store.rb, line 79
def get(queries = {})
  path = "/#{@@client.api_version}/classes/#{@@name}"
  results = @@client.get path, queries
  return [] unless results
  if results[:error] && results[:error] != ""
    @@error = results
    raise 'error'
  end
  items = []
  results[:results].each do |result|
    alc = result[:acl]
    result.delete(:acl)
    items << NCMB::DataStore.new(@@name, result, alc)
  end
  @@items = items
end
limit(count) click to toggle source
# File lib/ncmb/data_store.rb, line 47
def limit(count)
  @@queries[:limit] = count
  self
end
method_missing(name) click to toggle source
# File lib/ncmb/data_store.rb, line 17
def method_missing(name)
  if @@fields[name.to_sym]
    return @@fields[name.to_sym]
  else
    raise NoMethod, "#{name} is not found"
  end
end
order(field) click to toggle source
# File lib/ncmb/data_store.rb, line 37
def order(field)
  @@queries[:order] = field
  self
end
post(queries = {}) click to toggle source
# File lib/ncmb/data_store.rb, line 96
def post(queries = {})
  path = "/#{@client.api_version}/classes/#{@@name}"
  result = @client.post path, queries
  NCMB::DataStore.new(client, name, result)
end
skip(count) click to toggle source
# File lib/ncmb/data_store.rb, line 57
def skip(count)
  @@queries[:skip] = count
  self
end
where(params = {}) click to toggle source
# File lib/ncmb/data_store.rb, line 62
def where(params = {})
  @@queries[:where] = [] unless @@queries[:where]
  if params.size == 1
    @@queries[:where] << params
  else
    params.each do |hash|
      @@queries[:where] << hash
    end
  end
  self
end