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