module Github::Connection

Specifies Http connection options

Constants

ALLOWED_OPTIONS

Public Instance Methods

connection(api, options = {}) click to toggle source

Creates http connection

Returns a Faraday::Connection object

# File lib/github_api/connection.rb, line 69
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
default_headers() click to toggle source

Default requets header information

@return [Hash]

@api private

# File lib/github_api/connection.rb, line 26
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
default_options(options = {}) click to toggle source

Create default connection options

@return [Hash]

the default options

@api private

# File lib/github_api/connection.rb, line 41
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
stack(options = {}) click to toggle source

Exposes middleware builder to facilitate custom stacks and easy addition of new extensions such as cache adapter.

@api public

# File lib/github_api/connection.rb, line 55
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