class NCMB::Object
Public Class Methods
new(name, fields = {})
click to toggle source
# File lib/ncmb/object.rb, line 7 def initialize(name, fields = {}) @name = name fields[:acl] = NCMB::Acl.new(fields[:acl]) @fields = fields end
Public Instance Methods
ClassName()
click to toggle source
# File lib/ncmb/object.rb, line 17 def ClassName @name end
[](key)
click to toggle source
# File lib/ncmb/object.rb, line 43 def [](key) @fields[key] end
base_path()
click to toggle source
# File lib/ncmb/object.rb, line 57 def base_path "/#{@@client.api_version}/classes/#{@name}" end
call(name)
click to toggle source
# File lib/ncmb/object.rb, line 39 def call(name) @fields[name.to_sym] || NoMethodError end
convert_params()
click to toggle source
# File lib/ncmb/object.rb, line 69 def convert_params @fields.each do |key, field| if field.is_a?(NCMB::Object) field.save unless field.saved? @fields[key] = { __type: 'Pointer', className: field.ClassName, objectId: field.objectId } end if field.is_a?(Array) && field[0].is_a?(NCMB::Object) relation = NCMB::Relation.new field.each do |sub_field| sub_field.save unless sub_field.saved? relation << sub_field end @fields[key] = relation end end end
deletable?()
click to toggle source
# File lib/ncmb/object.rb, line 47 def deletable? if self.acl.fields[:*][:write] == true return true end return false unless NCMB.CurrentUser return false unless self.acl.fields[NCMB.CurrentUser.objectId.to_sym] return false unless self.acl.fields[NCMB.CurrentUser.objectId.to_sym][:write] true end
delete()
click to toggle source
# File lib/ncmb/object.rb, line 113 def delete response = @@client.delete path, {} if response == true return true else @@last_error = response return false end end
error()
click to toggle source
# File lib/ncmb/object.rb, line 123 def error @@last_error end
fields()
click to toggle source
# File lib/ncmb/object.rb, line 13 def fields @fields end
method_missing(name, value = nil)
click to toggle source
# File lib/ncmb/object.rb, line 21 def method_missing(name, value = nil) if name =~ /.*=$/ sym = name.to_s.gsub(/(.*?)=$/, '\1').to_sym @fields[sym] = value else sym = name.to_sym if @fields.has_key?(sym) return @fields[sym] else raise NoMethodError, "#{name} is not found" end end end
path()
click to toggle source
# File lib/ncmb/object.rb, line 61 def path "#{base_path}/#{@fields[:objectId] || '' }" end
post()
click to toggle source
# File lib/ncmb/object.rb, line 90 def post return self.put if saved? convert_params result = @@client.post path, @fields @fields.merge!(result) self end
Also aliased as: save
put()
click to toggle source
# File lib/ncmb/object.rb, line 99 def put return self.post unless saved? convert_params put_path = path params = @fields params.delete :objectId params.delete :createDate params.delete :updateDate result = @@client.put put_path, params @fields[:updateDate] = result[:updateDate] self end
Also aliased as: update
saved?()
click to toggle source
# File lib/ncmb/object.rb, line 65 def saved? @fields[:objectId] != nil end
set(name, value)
click to toggle source
# File lib/ncmb/object.rb, line 35 def set(name, value) @fields[name.to_sym] = value end