class PassiveCIRCL::Clients::Base
Constants
- BASE_URL
- HOST
Public Class Methods
new(username:, password:)
click to toggle source
# File lib/passive_circl/clients/base.rb, line 13 def initialize(username:, password:) @username = username @password = password end
Private Instance Methods
_get(path, params = {}, &block)
click to toggle source
# File lib/passive_circl/clients/base.rb, line 57 def _get(path, params = {}, &block) uri = url_for(path) uri.query = URI.encode_www_form(params) get = Net::HTTP::Get.new(uri) get.basic_auth @username, @password request(get, &block) end
https_options()
click to toggle source
# File lib/passive_circl/clients/base.rb, line 24 def https_options if proxy = ENV["HTTPS_PROXY"] || ENV["https_proxy"] uri = URI(proxy) { proxy_address: uri.hostname, proxy_port: uri.port, proxy_from_env: false, use_ssl: true } else { use_ssl: true } end end
request(req) { |parse body| ... }
click to toggle source
# File lib/passive_circl/clients/base.rb, line 38 def request(req) Net::HTTP.start(HOST, 443, https_options) do |http| response = http.request(req) code = response.code.to_i raise Error, "Unsupported response code returned: #{code}" if code != 200 body = response.body content_type = response["Content-Type"].to_s if content_type.include?("application/json") yield JSON.parse body else list = body.lines.map { |line| JSON.parse line } yield list end end end
url_for(path)
click to toggle source
# File lib/passive_circl/clients/base.rb, line 20 def url_for(path) URI(BASE_URL + path) end