module BWAPI::Request

Request module

Public Instance Methods

delete(path, opts = {}) click to toggle source

Perform a delete request

@param path [String] URL path to send request @param opts [Hash] Request parameters @return [Hash] Response body

# File lib/bwapi/request.rb, line 20
def delete(path, opts = {})
  request(:delete, path, opts).body
end
get(path, opts = {}) click to toggle source

Perform a get request

@param path [String] URL path to send request @param opts [Hash] Request parameters @return [Hash] Response body

# File lib/bwapi/request.rb, line 11
def get(path, opts = {})
  request(:get, path, opts).body
end
patch(path, opts = {}) click to toggle source

Perform a patch request

@param path [String] URL path to send request @param opts [Hash] Request parameters @return [Hash] Response body

# File lib/bwapi/request.rb, line 47
def patch(path, opts = {})
  request(:patch, path, opts).body
end
post(path, opts = {}) click to toggle source

Perform a post request

@param path [String] URL path to send request @param opts [Hash] Request parameters @return [Hash] Response body

# File lib/bwapi/request.rb, line 29
def post(path, opts = {})
  request(:post, path, opts).body
end
put(path, opts = {}) click to toggle source

Perform a put request

@param path [String] URL path to send request @param opts [Hash] Request parameters @return [Hash] Response body

# File lib/bwapi/request.rb, line 38
def put(path, opts = {})
  request(:put, path, opts).body
end

Private Instance Methods

key?(opts, key) click to toggle source

Checks if a request options has a given key Deletes the key if it is present

@param opts [Hash] Request parameters @param key [Symbol] The key to check for

# File lib/bwapi/request.rb, line 116
def key?(opts, key)
  return false unless opts.is_a?(Hash) && opts.key?(key)
  opts.delete(key)
end
request(method, path, opts = {}) click to toggle source

Perform a request

@param method [String] Type of request @param path [String] URL path to send request @param opts [Hash] Request parameters @return [Hash] Response

# File lib/bwapi/request.rb, line 59
def request(method, path, opts = {})
  connection.send(method) do |req|
    case method
    when :get
      path = request_extension(path, opts)
      request_url(req, path, opts)
    when :delete
      request_url(req, path, opts)
    when :patch, :post, :put
      request_body(req, path, opts)
    end
  end
end
request_body(req, path, opts) click to toggle source

Configures body request unless force_urlencoded key is passed

@param req [Object] the request object @param path [String] URL path to send request @param opts [Hash] Request parameters

# File lib/bwapi/request.rb, line 102
def request_body(req, path, opts)
  if key?(opts, :force_urlencoded)
    req.url path, opts
  else
    req.path = path
    req.body = opts
  end
end
request_extension(path, opts) click to toggle source

Appends the request extension to the path

@param path [String] URL path to send request @param opts [Hash] Request parameters @return [String] path appended with request extension

# File lib/bwapi/request.rb, line 78
def request_extension(path, opts)
  extension = key?(opts, :request_extension)
  extension ? [path, extension].join('.') : path
end
request_url(req, path, opts) click to toggle source

Configures url encoded request unless force_body key is passed

@param req [Object] the request object @param path [String] URL path to send request @param opts [Hash] Request parameters

# File lib/bwapi/request.rb, line 88
def request_url(req, path, opts)
  if key?(opts, :force_body)
    req.path = path
    req.body = opts
  else
    req.url path, opts
  end
end