Class: Bucket

Inherits:
Object
  • Object
show all
Defined in:
lib/simperuby.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app_id, access_token, name) ⇒ Bucket

Returns a new instance of Bucket.



44
45
46
47
48
# File 'lib/simperuby.rb', line 44

def initialize(app_id, access_token, name)
  @app_id = app_id
  @access_token = access_token
  @name = name
end

Instance Attribute Details

#nameObject

Returns the value of attribute name.



42
43
44
# File 'lib/simperuby.rb', line 42

def name
  @name
end

Instance Method Details

#[](object_id) ⇒ Object



60
61
62
# File 'lib/simperuby.rb', line 60

def [](object_id)
  JSON.parse RestClient.get "https://api.simperium.com/1/#{@app_id}/#{@name}/i/#{object_id}", { 'X-Simperium-Token' => @access_token }
end

#[]=(object_id, data) ⇒ Object



64
65
66
# File 'lib/simperuby.rb', line 64

def []=(object_id, data)
 JSON.parse RestClient.post "https://api.simperium.com/1/#{@app_id}/#{@name}/i/#{object_id}?response=1", data.to_json, { 'X-Simperium-Token' => @access_token }
end

#changes(params = {}) ⇒ Object



72
73
74
# File 'lib/simperuby.rb', line 72

def changes(params={})
  JSON.parse RestClient.get "https://api.simperium.com/1/#{@app_id}/#{@name}/all", :params => { :cv => params[:cv], :data => params[:data], :username => params[:username] }, 'X-Simperium-Token' => @access_token
end

#delete(object_id) ⇒ Object



68
69
70
# File 'lib/simperuby.rb', line 68

def delete(object_id)
  RestClient.delete "https://api.simperium.com/1/#{@app_id}/#{@name}/i/#{object_id}", { 'X-Simperium-Token' => @access_token }
end

#index(params = {}) ⇒ Object



50
51
52
# File 'lib/simperuby.rb', line 50

def index(params={})
  JSON.parse RestClient.get "https://api.simperium.com/1/#{@app_id}/#{@name}/index", :params => { :data => params[:data], :mark => params[:mark], :limit => params[:limit], :since => params[:since] }, 'X-Simperium-Token' => @access_token
end

#new(data) ⇒ Object



54
55
56
57
58
# File 'lib/simperuby.rb', line 54

def new(data)  
  uid = (1..32).map{([*('a'..'z')]+[*('A'..'Z')]+[*(1..9)].map{|n|n.to_s}).instance_eval{self[rand(self.size)]}}.join
  RestClient.post "https://api.simperium.com/1/#{@app_id}/#{@name}/i/#{uid}", data.to_json, { 'X-Simperium-Token' => @access_token }
  uid
end