Sha256: 30b2089abbf3f4cbfa099883029f1d255b86938d23f12062782f8d2446af2ff3

Contents?: true

Size: 1.24 KB

Versions: 1

Compression:

Stored size: 1.24 KB

Contents

module NCMB
  class Object
    include NCMB

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

    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

    def set(name, value)
      @fields[name] = value
    end
    
    def call(name)
      @fields[name.to_sym] || NoMethodError
    end
    
    def [](key)
      @fields[key]
    end

    def post
      path = "/#{@@client.api_version}/classes/#{@name}"
      result = @@client.post path, @fields
      alc = result[:acl]
      result.delete(:acl)
      NCMB::Object.new(@name, result, alc)
    end
    alias :save :post
    
    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]
    end
    alias :update :put
    
    def delete
      path = "/#{@@client.api_version}/classes/#{@name}/#{@fields[:objectId]}"
      @@client.delete path, {}
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ncmb-ruby-client-0.0.8 lib/ncmb/object.rb