module Tinybucket::Request

Protected Instance Methods

delete_path(path, params = {}, parser = nil, options = {}) click to toggle source
# File lib/tinybucket/request.rb, line 23
def delete_path(path, params = {}, parser = nil, options = {})
  request(:delete, path, params, parser, options)
end
get_path(path, params = {}, parser = nil, options = {}) click to toggle source
# File lib/tinybucket/request.rb, line 7
def get_path(path, params = {}, parser = nil, options = {})
  request(:get, path, params, parser, options)
end
patch_path(path, params = {}, parser = nil, options = {}) click to toggle source
# File lib/tinybucket/request.rb, line 11
def patch_path(path, params = {}, parser = nil, options = {})
  request(:patch, path, params, parser, options)
end
post_path(path, params = {}, parser = nil, options = {}) click to toggle source
# File lib/tinybucket/request.rb, line 15
def post_path(path, params = {}, parser = nil, options = {})
  request(:post, path, params, parser, options)
end
put_path(path, params = {}, parser = nil, options = {}) click to toggle source
# File lib/tinybucket/request.rb, line 19
def put_path(path, params = {}, parser = nil, options = {})
  request(:put, path, params, parser, options)
end

Private Instance Methods

extract_data_from_params(params) click to toggle source
# File lib/tinybucket/request.rb, line 51
def extract_data_from_params(params)
  if params.key?('data') && !params['data'].nil?
    params['data']
  else
    params
  end
end
request(method, path, params, parser, options) click to toggle source
# File lib/tinybucket/request.rb, line 29
def request(method, path, params, parser, options)
  conn = connection(parser, options)

  path = (conn.path_prefix + path).gsub(%r{//}, '/') \
    if conn.path_prefix != '/'

  response = conn.send(method) do |request|
    case method.intern
    when :get, :delete
      request.body = params.delete('data') if params.key?('data')
      request.url(path, params)
    when :post, :put, :patch
      request.path = path
      request.body = extract_data_from_params(params) unless params.empty?
    else
      raise ArgumentError, 'unknown http method: ' + method
    end
  end

  response.body
end