### Home Classes Methods

### In Files

- lib/github_api/connection.rb

### Methods

- #caching?
- #clear_cache
- #connection
- #default_middleware
- #default_options
- #stack

### Included Modules

- Github::Constants

### Class/Module Index

Quicksearch

- Github
- Github::API
- Github::Activity
- Github::Activity::Events
- Github::Activity::Notifications
- Github::Activity::Starring
- Github::Activity::Watching
- Github::ApiFactory
- Github::Arguments
- Github::Authorization
- Github::Authorizations
- Github::AutoloadHelper
- Github::Client
- Github::Configuration
- Github::Connection
- Github::Constants
- Github::CoreExt
- Github::CoreExt::OrderedHash
- Github::Descendants
- Github::Emojis
- Github::Error
- Github::Error::BadRequest
- Github::Error::ClientError
- Github::Error::Forbidden
- Github::Error::GithubError
- Github::Error::InternalServerError
- Github::Error::InvalidOptions
- Github::Error::NotAcceptable
- Github::Error::NotFound
- Github::Error::RequiredParams
- Github::Error::ServiceError
- Github::Error::ServiceUnavailable
- Github::Error::Unauthorized
- Github::Error::UnknownValue
- Github::Error::UnprocessableEntity
- Github::Error::Validations
- Github::Gists
- Github::Gists::Comments
- Github::GitData
- Github::GitData::Blobs
- Github::GitData::Commits
- Github::GitData::References
- Github::GitData::Tags
- Github::GitData::Trees
- Github::Gitignore
- Github::Issues
- Github::Issues::Assignees
- Github::Issues::Comments
- Github::Issues::Events
- Github::Issues::Labels
- Github::Issues::Milestones
- Github::Jsonable
- Github::Markdown
- Github::Meta
- Github::MimeType
- Github::Normalizer
- Github::Orgs
- Github::Orgs::Members
- Github::Orgs::Teams
- Github::PageIterator
- Github::PageLinks
- Github::PagedRequest
- Github::Pagination
- Github::ParameterFilter
- Github::ParamsHash
- Github::PullRequests
- Github::PullRequests::Comments
- Github::RateLimit
- Github::Repos
- Github::Repos::Collaborators
- Github::Repos::Comments
- Github::Repos::Commits
- Github::Repos::Contents
- Github::Repos::Downloads
- Github::Repos::Forks
- Github::Repos::Hooks
- Github::Repos::Keys
- Github::Repos::Merging
- Github::Repos::PubSubHubbub
- Github::Repos::Statistics
- Github::Repos::Statuses
- Github::Request
- Github::Request::BasicAuth
- Github::Request::Jsonize
- Github::Request::OAuth2
- Github::Resource
- Github::Response
- Github::Response::Header
- Github::Response::Jsonize
- Github::Response::Mashify
- Github::Response::RaiseError
- Github::Response::Xmlize
- Github::ResponseWrapper
- Github::S3Uploader
- Github::Say
- Github::Scopes
- Github::Search
- Github::Users
- Github::Users::Emails
- Github::Users::Followers
- Github::Users::Keys
- Github::Utils
- Github::Utils::Url
- Github::VERSION
- Github::Validations
- Github::Validations::Format
- Github::Validations::Presence
- Github::Validations::Required
- Github::Validations::Token
- Hash

No matching classes.

# Github::Connection

### Constants

ALLOWED_OPTIONS

### Public Instance Methods

caching?() click to toggle source

    # File lib/github_api/connection.rb, line 68
    def caching?
      !@connection.nil?
    end

clear_cache() click to toggle source

    # File lib/github_api/connection.rb, line 64
    def clear_cache
      @connection = nil
    end

connection(options={}) click to toggle source

Returns a Fraday::Connection object

    # File lib/github_api/connection.rb, line 87
    def connection(options={})
      conn_options = default_options(options)
      clear_cache unless options.empty?
      puts "OPTIONS:#{conn_options.inspect}" if ENV['DEBUG']

      @connection ||= Faraday.new(conn_options.merge(:builder => stack(options)))
    end

default_middleware(options={}) click to toggle source

Default middleware stack that uses default adapter as specified at configuration stage.

    # File lib/github_api/connection.rb, line 42
    def default_middleware(options={})
      Proc.new do |builder|
        builder.use Github::Request::Jsonize
        builder.use Faraday::Request::Multipart
        builder.use Faraday::Request::UrlEncoded
        builder.use Github::Request::OAuth2, oauth_token if oauth_token?
        builder.use Github::Request::BasicAuth, authentication if basic_authed?

        builder.use Faraday::Response::Logger if ENV['DEBUG']
        unless options[:raw]
          builder.use Github::Response::Mashify
          builder.use Github::Response::Jsonize
        end
        builder.use Github::Response::RaiseError
        builder.adapter adapter
      end
    end

default_options(options={}) click to toggle source

    # File lib/github_api/connection.rb, line 25
    def default_options(options={})
      {
        :headers => {
          ACCEPT           => "application/vnd.github.v3+json,"                                "application/vnd.github.beta+json;q=0.5,"                                "application/json;q=0.1",
          ACCEPT_CHARSET   => "utf-8",
          USER_AGENT       => user_agent
        },
        :ssl => ssl,
        :url => options.fetch(:endpoint) { Github.endpoint }
      }.deep_merge(options)
    end

stack(options={}, &block) click to toggle source

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

    # File lib/github_api/connection.rb, line 75
    def stack(options={}, &block)
      @stack ||= begin
        if block_given?
          Faraday::Builder.new(&block)
        else
          Faraday::Builder.new(&default_middleware(options))
        end
      end
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.