Class: Grocer::SSLConnection

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/grocer/ssl_connection.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ SSLConnection

Returns a new instance of SSLConnection.



12
13
14
15
16
# File 'lib/grocer/ssl_connection.rb', line 12

def initialize(options = {})
  options.each do |key, val|
    send("#{key}=", val)
  end
end

Instance Attribute Details

#certificateObject

Returns the value of attribute certificate.



10
11
12
# File 'lib/grocer/ssl_connection.rb', line 10

def certificate
  @certificate
end

#gatewayObject

Returns the value of attribute gateway.



10
11
12
# File 'lib/grocer/ssl_connection.rb', line 10

def gateway
  @gateway
end

#passphraseObject

Returns the value of attribute passphrase.



10
11
12
# File 'lib/grocer/ssl_connection.rb', line 10

def passphrase
  @passphrase
end

#portObject

Returns the value of attribute port.



10
11
12
# File 'lib/grocer/ssl_connection.rb', line 10

def port
  @port
end

Instance Method Details

#connectObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/grocer/ssl_connection.rb', line 22

def connect
  context = OpenSSL::SSL::SSLContext.new

  if certificate
    cert_data    = File.read(certificate)
    context.key  = OpenSSL::PKey::RSA.new(cert_data, passphrase)
    context.cert = OpenSSL::X509::Certificate.new(cert_data)
  end

  @sock     = TCPSocket.new(gateway, port)
  @ssl      = OpenSSL::SSL::SSLSocket.new(@sock, context)
  @ssl.sync = true
  @ssl.connect
end

#connected?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/grocer/ssl_connection.rb', line 18

def connected?
  !@ssl.nil?
end

#disconnectObject



37
38
39
40
41
42
43
# File 'lib/grocer/ssl_connection.rb', line 37

def disconnect
  @ssl.close if @ssl
  @ssl = nil

  @sock.close if @sock
  @sock = nil
end

#reconnectObject



45
46
47
48
# File 'lib/grocer/ssl_connection.rb', line 45

def reconnect
  disconnect
  connect
end