module Github::Connection

def connection(api, options = {})

Returns a Faraday::Connection object

Creates http connection
def connection(api, options = {})
  connection_options = default_options(options)
  connection_options.merge!(builder: stack(options.merge!(api: api)))
  if options[:connection_options]
    connection_options.deep_merge!(options[:connection_options])
  end
  if ENV['DEBUG']
    p "Connection options : \n"
    pp connection_options
  end
  Faraday.new(connection_options)
end

def default_headers

Other tags:
    Api: - private

Returns:
  • (Hash[String]) -
def default_headers
  {
    ACCEPT         => 'application/vnd.github.v3+json,' \
                      'application/vnd.github.beta+json;q=0.5,' \
                      'application/json;q=0.1',
    ACCEPT_CHARSET => 'utf-8'
  }
end

def default_options(options = {})

Other tags:
    Api: - private

Returns:
  • (Hash[Symbol]) -
def default_options(options = {})
  headers = default_headers.merge(options[:headers] || {})
  headers.merge!({USER_AGENT => options[:user_agent]})
  {
    headers: headers,
    ssl: options[:ssl],
    url: options[:endpoint]
  }
end

def stack(options = {})

Other tags:
    Api: - public
def stack(options = {})
  @stack ||= begin
    builder_class = if defined?(Faraday::RackBuilder)
                      Faraday::RackBuilder
                    else
                      Faraday::Builder
                    end
    builder_class.new(&Github.default_middleware(options))
  end
end