class Houston::Connection
Attributes
certificate[R]
passphrase[R]
socket[R]
ssl[R]
Public Class Methods
new(uri, certificate, passphrase)
click to toggle source
# File lib/houston/connection.rb, line 27 def initialize(uri, certificate, passphrase) @uri = URI(uri) @certificate = certificate.to_s @passphrase = passphrase.to_s unless passphrase.nil? end
open(uri, certificate, passphrase) { |connection| ... }
click to toggle source
# File lib/houston/connection.rb, line 15 def open(uri, certificate, passphrase) return unless block_given? connection = new(uri, certificate, passphrase) connection.open yield connection connection.close end
Public Instance Methods
close()
click to toggle source
# File lib/houston/connection.rb, line 51 def close return false if closed? @ssl.close @ssl = nil @socket.close @socket = nil end
closed?()
click to toggle source
# File lib/houston/connection.rb, line 61 def closed? not open? end
open()
click to toggle source
# File lib/houston/connection.rb, line 33 def open return false if open? @socket = TCPSocket.new(@uri.host, @uri.port) context = OpenSSL::SSL::SSLContext.new context.key = OpenSSL::PKey::RSA.new(@certificate, @passphrase) context.cert = OpenSSL::X509::Certificate.new(@certificate) @ssl = OpenSSL::SSL::SSLSocket.new(@socket, context) @ssl.sync = true @ssl.connect end
open?()
click to toggle source
# File lib/houston/connection.rb, line 47 def open? not (@ssl && @socket).nil? end