class PaperCup::Client

Attributes

options[RW]

Public Class Methods

new(opts) click to toggle source
# File lib/paper_cup/client.rb, line 5
def initialize(opts)
  @options = opts
end

Public Instance Methods

endpoint(path, opts = {}) click to toggle source
# File lib/paper_cup/client.rb, line 32
def endpoint(path, opts = {})
  opts = merged_opts_for_request opts.merge(path: path)
  opts.reject! do |k,v|
    k == :method
  end

  return self.class.new(opts)
end
headers() click to toggle source
# File lib/paper_cup/client.rb, line 13
def headers
  options[:headers] || {}
end
params() click to toggle source
# File lib/paper_cup/client.rb, line 17
def params
  options[:params] || {}
end
url() click to toggle source
# File lib/paper_cup/client.rb, line 9
def url
  options.fetch(:url)
end

Private Instance Methods

merged_opts_for_request(opts) click to toggle source
# File lib/paper_cup/client.rb, line 43
def merged_opts_for_request(opts)
  _method  = opts[:method] || :get
  _url     = File.join(url, opts.fetch(:path).to_s)
  _headers = headers.merge(opts[:headers] || {})
  _params  = params.merge(opts[:params] || {})

  { method: _method, url: _url, headers: _headers, params: _params }
end