class TwitterJekyll::ApiClient

Wrapper around an API @api private

Public Instance Methods

fetch(api_request) click to toggle source

Perform API request; return hash with html content

# File lib/jekyll-twitter-plugin-2.rb, line 71
def fetch(api_request)
  uri = api_request.to_uri
  response = Net::HTTP.start(uri.host, use_ssl: api_request.ssl?) do |http|
    http.read_timeout = 5
    http.open_timeout = 5
    http.get uri.request_uri, REQUEST_HEADERS
  end

  handle_response(api_request, response)

rescue Timeout::Error => e
  ErrorResponse.new(api_request, e.class.name).to_h
end

Private Instance Methods

handle_response(api_request, response) click to toggle source
# File lib/jekyll-twitter-plugin-2.rb, line 87
def handle_response(api_request, response)
  case response
  when Net::HTTPSuccess
    JSON.parse(response.body)
  else
    ErrorResponse.new(api_request, response.message).to_h
  end
end