module Tumblr::Request

Public Instance Methods

delete(path) click to toggle source
# File lib/tumblr/request.rb, line 20
def delete(path)
  make_request(:delete, path)
end
get(path,params={}) click to toggle source
# File lib/tumblr/request.rb, line 8
def get(path,params={})
  make_request(:get, build_query(path, params))
end
post(path, *params) click to toggle source
# File lib/tumblr/request.rb, line 12
def post(path, *params)
  make_request(:post, path, *params)
end
put(path) click to toggle source
# File lib/tumblr/request.rb, line 16
def put(path)
  make_request(:put, path)
end

Private Instance Methods

build_query(base, params={}) click to toggle source
# File lib/tumblr/request.rb, line 26
def build_query(base, params={})
  return base if params.empty?
  "#{base}?#{Rack::Utils.build_query(params)}"
end
make_request(method, path, *params) click to toggle source
# File lib/tumblr/request.rb, line 32
def make_request(method, path, *params)
  response = connection.request(method, path, *params)
  case response.code.to_i
  when 400
    raise Tumblr::Error::BadRequestError.new(response.body)
  when 401
    raise Tumblr::Error::UnauthorizedError.new(response.body)
  when 403
    raise Tumblr::Error::ForbiddenError.new(response.body)
  when 404
    raise Tumblr::Error::NotFoundError.new(response.body)
  when 500
    raise Tumblr::Error::InternalServerError.new(response.body)
  when 502
    raise Tumblr::Error::BadGatewayError.new(response.body)
  when 503
    raise Tumblr::Error::ServiceUnavailableError.new(response.body)
  end

  response["Content-Type"] == "application/json" ? Hashie::Mash.new(JSON::parse(response.body)) : response.body
end