class FastlyNsq::Http
Adapter class for HTTP requests to NSQD
@example
uri = URI.join(nsqd_url, '/info') client = FastlyNsq::Http.new(uri: uri) client.use_ssl
Attributes
cert_filename[R]
key_filename[R]
uri[R]
Public Class Methods
new(uri:, cert_filename: ENV['NSQ_SSL_CERTIFICATE'], key_filename: ENV['NSQ_SSL_KEY'])
click to toggle source
# File lib/fastly_nsq/http.rb, line 18 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
Public Instance Methods
get(data = nil)
click to toggle source
# File lib/fastly_nsq/http.rb, line 24 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
post(data, body = nil)
click to toggle source
# File lib/fastly_nsq/http.rb, line 33 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
use_ssl()
click to toggle source
# File lib/fastly_nsq/http.rb, line 40 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 Instance Methods
can_use_ssl?()
click to toggle source
# File lib/fastly_nsq/http.rb, line 56 def can_use_ssl? !(cert_filename.nil? || key_filename.nil?) end
cert()
click to toggle source
# File lib/fastly_nsq/http.rb, line 60 def cert @cert ||= OpenSSL::X509::Certificate.new(File.read(cert_filename)) end
http()
click to toggle source
# File lib/fastly_nsq/http.rb, line 52 def http @http ||= Net::HTTP.new(uri.host, uri.port) end
key()
click to toggle source
# File lib/fastly_nsq/http.rb, line 64 def key @key ||= OpenSSL::PKey::RSA.new(File.read(key_filename)) end