Module: Ruflet

Defined in:
lib/ruflet/server.rb,
lib/ruflet_server.rb,
lib/ruflet/version.rb,
lib/ruflet/server/wire_codec.rb,
lib/ruflet/server/connection_protocol.rb,
lib/ruflet/server/web_socket_connection.rb

Defined Under Namespace

Modules: ConnectionProtocol Classes: Server, WebSocketConnection, WireCodec

Constant Summary collapse

VERSION =
"0.0.16"

Class Method Summary collapse

Class Method Details

.normalize_run_port(value) ⇒ Object



32
33
34
35
36
# File 'lib/ruflet_server.rb', line 32

def normalize_run_port(value)
  Integer(value)
rescue ArgumentError, TypeError
  8550
end

.run(entrypoint = nil, host: "0.0.0.0", port: nil, &block) ⇒ Object

Raises:

  • (ArgumentError)


9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/ruflet_server.rb', line 9

def run(entrypoint = nil, host: "0.0.0.0", port: nil, &block)
  port = normalize_run_port(port || ENV["RUFLET_PORT"] || 8550)
  callback = entrypoint || block
  raise ArgumentError, "Ruflet.run requires a callable entrypoint or block" unless callback.respond_to?(:call)

  interceptor = run_interceptor
  if interceptor
    result = interceptor.call(entrypoint: callback, host: host, port: port)
    return result unless result == :pass
  end

  Server.new(host: host, port: port) do |page|
    callback.call(page)
  end.start
end

.run_interceptorObject



25
26
27
28
29
30
# File 'lib/ruflet_server.rb', line 25

def run_interceptor
  return nil unless instance_variable_defined?(:@run_interceptors_mutex)
  return nil unless instance_variable_defined?(:@run_interceptors)

  @run_interceptors_mutex.synchronize { @run_interceptors.last }
end