Class: Grocer::SSLServer

Inherits:
Object
  • Object
show all
Defined in:
lib/grocer/ssl_server.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ SSLServer

Returns a new instance of SSLServer.



10
11
12
13
14
# File 'lib/grocer/ssl_server.rb', line 10

def initialize(options = {})
  options.extend Extensions::DeepSymbolizeKeys
  options = defaults.merge(options.deep_symbolize_keys)
  options.each { |k, v| send("#{k}=", v) }
end

Instance Attribute Details

#portObject

Returns the value of attribute port.



8
9
10
# File 'lib/grocer/ssl_server.rb', line 8

def port
  @port
end

Instance Method Details

#acceptObject



22
23
24
25
26
# File 'lib/grocer/ssl_server.rb', line 22

def accept
  while socket = ssl_socket.accept
    yield socket if block_given?
  end
end

#closeObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/grocer/ssl_server.rb', line 28

def close
  if @ssl_socket && !@ssl_socket.closed?
    begin
      @ssl_socket.shutdown
    rescue Errno::ENOTCONN
      # Some platforms raise this if the socket is not connected. Not sure
      # how to avoid it.
    end

    @ssl_socket.close
  end

  @ssl_socket = nil
  @socket = nil
end

#defaultsObject



16
17
18
19
20
# File 'lib/grocer/ssl_server.rb', line 16

def defaults
  {
    port: 2195
  }
end