class RelateIQ::APIResource

Public Class Methods

all(params = {}, url = nil) click to toggle source
# File lib/relateiq/api_resource.rb, line 23
def self.all(params = {}, url = nil)
  params = {} unless params.is_a? Hash
  plural = "#{name}s"
  path = url.nil? ? "#{plural}" : url
  response = RelateIQ.get(path, params)
  objects = response['objects'] || []
  list = Array.new
  objects.each do |v|
    if v.class == Hash && v['id'].nil?
      c = self.new(v['id'])
    else
      c = self.new
    end
    c.refresh_from(v)
    list.push(c)
  end
  return RiqList.new(list)
end
delete(id, params = {}) click to toggle source
# File lib/relateiq/api_resource.rb, line 69
def self.delete(id, params = {})
  plural = "#{name}s"
  path = "#{plural}/#{id}"
  RelateIQ.delete(path)
end
find(id, params = {}, url = nil) click to toggle source
# File lib/relateiq/api_resource.rb, line 15
def self.find(id, params = {}, url = nil)
  path = url.nil? ? "#{name}s/#{id}" : url
  instance = self.new(id)
  response = RelateIQ.get(path, params)
  instance.refresh_from(response)
  instance
end
name() click to toggle source
# File lib/relateiq/api_resource.rb, line 3
def self.name
  n = self.to_s.split('::')[-1]
  # Hyphenize
  n.scan(/([A-Z][a-z]*)/).join('-').downcase
end
update(id, params = {}) click to toggle source
# File lib/relateiq/api_resource.rb, line 48
def self.update(id, params = {})
  plural = "#{name}s"
  path = "#{plural}/#{id}"
  p = { self.name => params }.to_json
  response = RelateIQ.put(path, p)
end

Public Instance Methods

create(params = {}) click to toggle source
# File lib/relateiq/api_resource.rb, line 56
def create(params = {})
  plural = "#{name}s"
  path = "#{plural}/#{self.id}"
  p = { self.name => params }.to_json
  resonse = RelateIQ.post(path, p)
end
delete(params = {}) click to toggle source
# File lib/relateiq/api_resource.rb, line 63
def delete(params = {})
  plural = "#{name}s"
  path = "#{plural}/#{self.id}"
  RelateIQ.delete(path)
end
name() click to toggle source
# File lib/relateiq/api_resource.rb, line 9
def name
  n = self.class.to_s.split('::')[-1]
  # Hyphenize
  n.scan(/([A-Z][a-z]*)/).join('-').downcase
end
update(params = {}) click to toggle source
# File lib/relateiq/api_resource.rb, line 42
def update(params = {})
  path = "#{self.name}s/#{self.id}"
  p = { self.name => params }.to_json
  response = RelateIQ.put(path, p)
end