module Lgtm::Network

Network is module of HTTP communication

Public Instance Methods

parse_redirect_location(response) click to toggle source

parse_redirect_location Parse redirect location from response

@param [Net::HTTP] response HTTP response

@return [String] Redirect location

# File lib/lgtm/network.rb, line 29
def parse_redirect_location(response)
  response['location']
end
process_request(uri) click to toggle source

process_request Send HTTP request

@param [URI] uri Request uri

@return [Net::HTTP] HTTP response

# File lib/lgtm/network.rb, line 14
def process_request(uri)
  request = Net::HTTP::Get.new(uri)
  connection = Net::HTTP.start(uri.hostname, uri.port, use_ssl: https?(uri))

  connection
    .request(request)
    .tap(&method(:validate_response!))
end

Private Instance Methods

https?(uri) click to toggle source

https? Check that uri use HTTPS scheme

@param [URI] uri Test uri

@return [Boolean] Result of check

# File lib/lgtm/network.rb, line 53
def https?(uri)
  uri.instance_of?(URI::HTTPS)
end
validate_response!(response) click to toggle source

validate_response! Validates HTTP response

@param [Net::HTTP] response Net::HTTP response

@raise NetworkError

@return [nil]

# File lib/lgtm/network.rb, line 43
def validate_response!(response)
  raise NetworkError, response.message if response.is_a?(Net::HTTPError)
end