Class: NCMB::Object

Inherits:
Object
  • Object
show all
Includes:
NCMB
Defined in:
lib/ncmb/object.rb

Direct Known Subclasses

User

Constant Summary

Constants included from NCMB

API_VERSION, DOMAIN

Instance Method Summary collapse

Methods included from NCMB

CurrentUser, initialize

Constructor Details

#initialize(name, fields = {}, alc = "") ⇒ Object

Returns a new instance of Object.



5
6
7
8
9
# File 'lib/ncmb/object.rb', line 5

def initialize(name, fields = {}, alc = "")
  @name    = name
  @alc     = alc
  @fields  = fields
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/ncmb/object.rb', line 15

def method_missing(name)
  sym = name.to_sym
  if @fields.has_key?(sym)
    return @fields[sym]
  else
    raise NoMethodError, "#{name} is not found"
  end
end

Instance Method Details

#[](key) ⇒ Object



32
33
34
# File 'lib/ncmb/object.rb', line 32

def [](key)
  @fields[key]
end

#call(name) ⇒ Object



28
29
30
# File 'lib/ncmb/object.rb', line 28

def call(name)
  @fields[name.to_sym] || NoMethodError
end

#deleteObject



56
57
58
59
60
61
62
63
64
65
# File 'lib/ncmb/object.rb', line 56

def delete
  path = "/#{@@client.api_version}/classes/#{@name}/#{@fields[:objectId]}"
  response = @@client.delete path, {}
  if response == true
    return true
  else
    @@last_error = response
    return false
  end
end

#errorObject



67
68
69
# File 'lib/ncmb/object.rb', line 67

def error
  @@last_error
end

#fieldsObject



11
12
13
# File 'lib/ncmb/object.rb', line 11

def fields
  @fields
end

#postObject Also known as: save



36
37
38
39
40
41
# File 'lib/ncmb/object.rb', line 36

def post
  path = "/#{@@client.api_version}/classes/#{@name}"
  result = @@client.post path, @fields
  @fields.merge!(result)
  self
end

#putObject Also known as: update



44
45
46
47
48
49
50
51
52
53
# File 'lib/ncmb/object.rb', line 44

def put
  path = "/#{@@client.api_version}/classes/#{@name}/#{@fields[:objectId]}"
  params = @fields
  params.delete :objectId
  params.delete :createDate
  params.delete :updateDate
  result = @@client.put path, params
  @fields[:updateDate] = result[:updateDate]
  self
end

#set(name, value) ⇒ Object



24
25
26
# File 'lib/ncmb/object.rb', line 24

def set(name, value)
  @fields[name.to_sym] = value
end