class NCMB::DataStore

Attributes

path[RW]

Public Class Methods

new(name, fields = {}, alc = "") click to toggle source
# File lib/ncmb/data_store.rb, line 9
def initialize(name, fields = {}, alc = "")
  @name    = name
  @alc     = alc
  @fields  = fields
  @search_key = :where
  @queries = {}
  @queries[@search_key] = []
  @items   = nil
  @path    = nil
end

Public Instance Methods

[](count) click to toggle source
# File lib/ncmb/data_store.rb, line 73
def [](count)
  get[count]
end
all()
Alias for: get
columns() click to toggle source
# File lib/ncmb/data_store.rb, line 29
def columns
  @fields.keys
end
count() click to toggle source
# File lib/ncmb/data_store.rb, line 63
def count
  @queries[:count] = 1
  self
end
delete_all() click to toggle source
# File lib/ncmb/data_store.rb, line 121
def delete_all
  max = 1000
  dataStore = NCMB::DataStore.new(@name)
  count = dataStore.limit(max).count().all
  if count == 0
    return true
  end
  dataStore.queries.delete :count
  dataStore.each do |item|
    begin
      item.delete if item.deletable?
    rescue
      puts "Can't delete #{item.objectId}"
    end
  end
  if count > max
    return delete_all
  end
  true
end
each(&block) click to toggle source
# File lib/ncmb/data_store.rb, line 41
def each(&block)
  get.each(&block)
end
each_with_index(&block) click to toggle source
# File lib/ncmb/data_store.rb, line 45
def each_with_index(&block)
  get.each_with_index(&block)
end
error() click to toggle source
# File lib/ncmb/data_store.rb, line 21
def error
  @error
end
first() click to toggle source
# File lib/ncmb/data_store.rb, line 54
def first
  get.first
end
get() click to toggle source
# File lib/ncmb/data_store.rb, line 90
def get
  # return @items unless @items.nil?
  results = @@client.get path, @queries
  return [] unless results
  if results[:error] && results[:error] != ""
    @error = results
    raise NCMB::FetchError
  end
  if @queries[:count] == 1
    return results[:count]
  end
  @items = []
  results[:results].each do |result|
    result.each do |key, field|
      if field.is_a?(Hash) && field[:__type] == 'GeoPoint'
        result[key] = NCMB::GeoPoint.new(field[:latitude], field[:longitude])
      end
      if field.is_a?(Hash) && field[:__type] == 'Date'
        result[key] = Time.parse(field[:iso])
      end
    end
    @items << NCMB::Object.new(@name, result)
  end
  @items
end
Also aliased as: all
limit(count) click to toggle source
# File lib/ncmb/data_store.rb, line 58
def limit(count)
  @queries[:limit] = count
  self
end
method_missing(name) click to toggle source
# File lib/ncmb/data_store.rb, line 33
def method_missing(name)
  if @fields[name.to_sym]
    return @fields[name.to_sym]
  else
    raise NoMethodError, "#{name} is not found"
  end
end
new(opt = {}) click to toggle source
# File lib/ncmb/data_store.rb, line 25
def new opt = {}
  NCMB::Object.new @name, opt
end
order(field) click to toggle source
# File lib/ncmb/data_store.rb, line 49
def order(field)
  @queries[:order] = field
  self
end
queries() click to toggle source
# File lib/ncmb/data_store.rb, line 117
def queries
  @queries
end
skip(count) click to toggle source
# File lib/ncmb/data_store.rb, line 68
def skip(count)
  @queries[:skip] = count
  self
end