Sha256: ee9ee9a5845f4700d77026c234189b6a1122b9ac23a5c0a6bb0cb697fbd653b9

Contents?: true

Size: 1.05 KB

Versions: 4

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module RubyLokaliseApi
  module Connection
    def connection(client)
      Faraday.new(options(client), request_params_for(client)) do |faraday|
        faraday.adapter Faraday.default_adapter
        faraday.request(:gzip) if client.compression?
      end
    end

    private

    def options(client)
      params = __base_options(client)

      if client.respond_to?(:token) && client.respond_to?(:token_header)
        params[:headers][client.token_header] = client.token
      end
      params[:headers][:accept_encoding] = 'gzip,deflate,br' if client.compression?

      params
    end

    def __base_options(client)
      {
        headers: {
          accept: 'application/json',
          user_agent: "ruby-lokalise-api gem/#{RubyLokaliseApi::VERSION}"
        },
        url: client.base_url
      }
    end

    # Allows to customize request params per-client
    def request_params_for(client)
      {request: {timeout: client.timeout, open_timeout: client.open_timeout}}
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby-lokalise-api-7.2.0 lib/ruby_lokalise_api/connection.rb
ruby-lokalise-api-7.1.1 lib/ruby_lokalise_api/connection.rb
ruby-lokalise-api-7.1.0 lib/ruby_lokalise_api/connection.rb
ruby-lokalise-api-7.0.0 lib/ruby_lokalise_api/connection.rb