Class: Kward::CodeSearch::NetHttpClient

Inherits:
Object
  • Object
show all
Defined in:
lib/kward/tools/search/code.rb

Instance Method Summary collapse

Instance Method Details

#get_json(url, headers: {}) ⇒ Object



50
51
52
# File 'lib/kward/tools/search/code.rb', line 50

def get_json(url, headers: {})
  JSON.parse(get_text(url, headers: headers.merge("Accept" => "application/json")))
end

#get_text(url, headers: {}) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/kward/tools/search/code.rb', line 54

def get_text(url, headers: {})
  uri = URI(url)
  request = Net::HTTP::Get.new(uri)
  request["User-Agent"] = "Kward code_search"
  headers.each { |key, val| request[key] = val }
  response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https", open_timeout: HTTP_TIMEOUT_SECONDS, read_timeout: HTTP_TIMEOUT_SECONDS) do |http|
    http.request(request)
  end
  raise "HTTP #{response.code} from #{uri.host}" unless response.is_a?(Net::HTTPSuccess)

  response.body
end