class JSONAPI::Consumer::Connection

Attributes

faraday[R]

Public Class Methods

new(options = {}) { |self| ... } click to toggle source
# File lib/jsonapi/consumer/connection.rb, line 6
def initialize(options = {})
  site = options.fetch(:site)
  connection_options = options.slice(:proxy, :ssl, :request, :headers, :params)
  adapter_options = Array(options.fetch(:adapter, Faraday.default_adapter))
  @faraday = Faraday.new(site, connection_options) do |builder|
    builder.request :json
    builder.use Middleware::JsonRequest
    builder.use Middleware::Status
    builder.use Middleware::ParseJson
    builder.adapter(*adapter_options)
  end
  yield(self) if block_given?
end

Public Instance Methods

delete(middleware) click to toggle source
# File lib/jsonapi/consumer/connection.rb, line 27
def delete(middleware)
  faraday.builder.delete(middleware)
end
run(request_method, path, params = {}, headers = {}) click to toggle source
# File lib/jsonapi/consumer/connection.rb, line 31
def run(request_method, path, params = {}, headers = {})
  faraday.send(request_method, path, params, headers)
end
use(middleware, *args, &block) click to toggle source

insert middleware before ParseJson - middleware executed in reverse order -

inserted middleware will run after json parsed
# File lib/jsonapi/consumer/connection.rb, line 22
def use(middleware, *args, &block)
  return if faraday.builder.locked?
  faraday.builder.insert_before(Middleware::ParseJson, middleware, *args, &block)
end