Sha256: ccc3910238f281cc85f50ff3519d7b1a6f35307bbe246a85813b39151d778c35

Contents?: true

Size: 991 Bytes

Versions: 1

Compression:

Stored size: 991 Bytes

Contents

module JsonApiClient
  module Legacy
    class Connection

      attr_reader :faraday

      def initialize(options = {})
        site = options.fetch(:site)
        @faraday = Faraday.new(site) do |builder|
          builder.request :json
          builder.use Middleware::Status
          builder.use Middleware::ParseJson
          builder.adapter Faraday.default_adapter
        end
        yield(self) if block_given?
      end

      # insert middleware before ParseJson - middleware executed in reverse order -
      #   inserted middleware will run after json parsed
      def use(middleware, *args, &block)
        return if faraday.builder.locked?
        faraday.builder.insert_before(Middleware::ParseJson, middleware, *args, &block)
      end

      def delete(middleware)
        faraday.builder.delete(middleware)
      end

      def run(request_method, path, params = {}, headers = {})
        faraday.send(request_method, path, params, headers)
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
json_api_client-legacy-1.0.0.beta lib/json_api_client/legacy/connection.rb