Class: Kaisoku::Daemon::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/kaisoku/daemon/server.rb

Instance Method Summary collapse

Constructor Details

#initialize(socket_path:, cli_factory: ->(argv) { CLI.new(argv) }) ⇒ Server

Returns a new instance of Server.



10
11
12
13
# File 'lib/kaisoku/daemon/server.rb', line 10

def initialize(socket_path:, cli_factory: ->(argv) { CLI.new(argv) })
  @socket_path = socket_path
  @cli_factory = cli_factory
end

Instance Method Details

#startObject



15
16
17
18
19
20
21
22
23
24
# File 'lib/kaisoku/daemon/server.rb', line 15

def start
  FileUtils.mkdir_p(File.dirname(@socket_path))
  FileUtils.rm_f(@socket_path)

  UNIXServer.open(@socket_path) do |server|
    loop { handle(server.accept) }
  end
ensure
  File.unlink(@socket_path) if @socket_path && File.socket?(@socket_path)
end