Sha256: b2ee5fb07e77fc0fda0d00706699a1362ae6ac605a4d2ea3a73b3f58e0de9359
Contents?: true
Size: 1.45 KB
Versions: 3
Compression:
Stored size: 1.45 KB
Contents
# frozen_string_literal: true require "net/https" require "fastly_nsq/http/nsqd" require "fastly_nsq/http/nsqlookupd" ## # Adapter class for HTTP requests to NSQD # # @example # uri = URI.join(nsqd_url, '/info') # client = FastlyNsq::Http.new(uri: uri) # client.use_ssl # # @see FastlyNsq::Http::Nsqd # @see FastlyNsq::Http::Nsqlookupd class FastlyNsq::Http def initialize(uri:, cert_filename: ENV["NSQ_SSL_CERTIFICATE"], key_filename: ENV["NSQ_SSL_KEY"]) @uri = uri.is_a?(URI) ? uri : URI.parse(uri) @cert_filename = cert_filename @key_filename = key_filename end def get(data = nil) if data params = URI.encode_www_form(data) uri.query = params end req = Net::HTTP::Get.new(uri.request_uri) http.request(req) end def post(data, body = nil) params = URI.encode_www_form(data) uri.query = params req = Net::HTTP::Post.new(uri.request_uri) http.request(req, body) end def use_ssl return unless can_use_ssl? http.use_ssl = true http.cert = cert http.key = key http.verify_mode = OpenSSL::SSL::VERIFY_NONE end private attr_reader :cert_filename, :key_filename, :uri def http @http ||= Net::HTTP.new(uri.host, uri.port) end def can_use_ssl? !(cert_filename.nil? || key_filename.nil?) end def cert @cert ||= OpenSSL::X509::Certificate.new(File.read(cert_filename)) end def key @key ||= OpenSSL::PKey::RSA.new(File.read(key_filename)) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
fastly_nsq-1.18.1 | lib/fastly_nsq/http.rb |
fastly_nsq-1.18.0 | lib/fastly_nsq/http.rb |
fastly_nsq-1.17.1 | lib/fastly_nsq/http.rb |