class Sqwiggle::Api::Resource

Attributes

endpoint[RW]

Public Class Methods

all(client=Client.new) click to toggle source
# File lib/sqwiggle/api/resource.rb, line 18
def all(client=Client.new)
  [].tap do |result|
    JSON.parse(client.get(self.endpoint).body).each do |item|
      result << self.new(item.merge client:client)
    end
  end
end
create(params, client=Client.new) click to toggle source
# File lib/sqwiggle/api/resource.rb, line 38
def create(params, client=Client.new)
  create! params, client
rescue Errors::BadRequestError 
  false
end
create!(params, client=Client.new) click to toggle source
# File lib/sqwiggle/api/resource.rb, line 32
def create!(params, client=Client.new)
  attrs = JSON.parse(client.post("#{endpoint}", params).body)
  attrs.merge! client:client
  self.new attrs
end
default_endpoint() click to toggle source
# File lib/sqwiggle/api/resource.rb, line 48
def default_endpoint
  "/#{self.to_s.downcase.split('::').last}s"
end
find(id, client=Client.new) click to toggle source
# File lib/sqwiggle/api/resource.rb, line 26
def find(id, client=Client.new)
  attrs = JSON.parse client.get("#{endpoint}/#{id}").body
  attrs.merge! client:client
  self.new attrs
end

Public Instance Methods

default_client() click to toggle source
# File lib/sqwiggle/api/resource.rb, line 10
def default_client
  Client.new
end
delete() click to toggle source
# File lib/sqwiggle/api/resource.rb, line 83
def delete
  res = client.delete("#{self.class.endpoint}/#{id}")
  res.status == 204
end
persisted?() click to toggle source
# File lib/sqwiggle/api/resource.rb, line 79
def persisted?
  (id != nil)
end
save() click to toggle source
# File lib/sqwiggle/api/resource.rb, line 73
def save
  return update(self.attributes) if persisted?
  self.attributes = self.class.create(attributes, client).attributes
  self
end
save!() click to toggle source
# File lib/sqwiggle/api/resource.rb, line 67
def save!
  return update!(self.attributes) if persisted?
  self.attributes = self.class.create!(attributes, client).attributes
  self
end
update(params) click to toggle source
# File lib/sqwiggle/api/resource.rb, line 61
def update(params)
  update! params
rescue Errors::BadRequestError 
  false
end
update!(params) click to toggle source
# File lib/sqwiggle/api/resource.rb, line 54
def update!(params)
  res = client.put("#{self.class.endpoint}/#{id}", params)
  attrs = JSON.parse(res.body, :symbolize_names => true)
  self.attributes = attrs
  self
end