class Doshii::Resource

Attributes

url[W]

Public Class Methods

new(url, options = {}) click to toggle source
# File lib/doshii/resource.rb, line 11
def initialize(url, options = {})
  @url = url
  merged_options = Doshii.options.merge(options)
  Configuration::VALID_CONFIG_KEYS.each do |key|
    send("#{key}=", merged_options[key])
  end
end

Public Instance Methods

all() click to toggle source
# File lib/doshii/resource.rb, line 19
def all
  process_response(request :get, @url)
end
create(id = nil, query = {}, &block) click to toggle source
# File lib/doshii/resource.rb, line 23
def create(id = nil, query = {}, &block)
  url = id.nil? ? @url : "#{@url}/#{id}"
  process_response(request :post, url, query, &block)
end
delete(id) click to toggle source
# File lib/doshii/resource.rb, line 28
def delete(id)
  process_response(request :delete, "#{@url}/#{id}")
end
find(id) click to toggle source
# File lib/doshii/resource.rb, line 32
def find(id)
  process_response(request :get, "#{@url}/#{id}")
end
update(id, query = {}, &block) click to toggle source
# File lib/doshii/resource.rb, line 36
def update(id, query = {}, &block)
  process_response(request :put, "#{@url}/#{id}", query, &block)
end

Private Instance Methods

process_response(res) click to toggle source
# File lib/doshii/resource.rb, line 42
def process_response(res)
  return res if (res.status != 200 && res.body.blank?) || res.status == 404
  return res.body.collect { |r| Doshii::Response[r] } if res.body.is_a? Array
  body = Doshii::Response[res.body]
end