Class: Fiona7::BinaryHandling::EmbeddedServer

Inherits:
Object
  • Object
show all
Extended by:
MonitorMixin
Defined in:
lib/fiona7/scrivito_patches/binary.rb

Defined Under Namespace

Classes: BinaryServerlet

Constant Summary collapse

HOST =
'localhost'
PORT =
7104

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.enableObject

Returns the value of attribute enable.



343
344
345
# File 'lib/fiona7/scrivito_patches/binary.rb', line 343

def enable
  @enable
end

Class Method Details

.run_serverObject



442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
# File 'lib/fiona7/scrivito_patches/binary.rb', line 442

def self.run_server

  server = ::WEBrick::HTTPServer.new({
    :Port => PORT, :DocumentRoot => '/dev/null',
    #Logger: WEBrick::Log.new(Logger.new(nil)), AccessLog: []
  })

  server.mount '/', BinaryServerlet

  Signal.trap('INT') do
    server.shutdown
    exit!
  end 

  server.start
end

.running_instanceObject



416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
# File 'lib/fiona7/scrivito_patches/binary.rb', line 416

def self.running_instance
  if !self.enable
    return HOST, PORT
  end

  self.synchronize do
    @server_thread ||= self.wait_for_server

    Kernel.at_exit do
      Process.kill("INT", @server_thread)
      Process.kill("KILL", @server_thread)
    end

    return HOST, PORT
  end
end

.wait_for_serverObject



433
434
435
436
437
438
439
440
# File 'lib/fiona7/scrivito_patches/binary.rb', line 433

def self.wait_for_server
  pid = Process.fork do
    self.run_server
  end
  # wait for webrick!
  sleep 1
  pid
end