Class: MendixBridge::BackendServer

Inherits:
Object
  • Object
show all
Defined in:
lib/mendix_bridge/backend_server.rb

Constant Summary collapse

INVENTORY_FILES =
{
  "/inventory/project-tree.json" => ["inventory", "project-tree.json"],
  "/inventory/element-details.json" => ["inventory", "element-details.json"],
  "/inventory/dependencies.json" => ["inventory", "dependencies.json"],
  "/inventory/mendix-project.json" => ["mendix-project.json"],
  "/inventory/ui-layouts.json" => ["inventory", "ui-layouts.json"]
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(inventory_dir:, web_root:, mxcli:, bind: "127.0.0.1", port: 4567, logger: nil, run_cmd: nil) ⇒ BackendServer

Returns a new instance of BackendServer.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/mendix_bridge/backend_server.rb', line 23

def initialize(
  inventory_dir:,
  web_root:,
  mxcli:,
  bind: "127.0.0.1",
  port: 4567,
  logger: nil,
  run_cmd: nil
)
  @inventory_dir = File.expand_path(inventory_dir)
  @web_root = File.expand_path(web_root)
  @mxcli = File.expand_path(mxcli)
  @layout_mutex = Mutex.new
  @app_mutex = Mutex.new
  @app_log = []
  @app_pid = nil
  @app_type = nil       # :docker | :direct
  @docker_running = false
  @auth_user = nil
  @run_cmd_override = run_cmd
  validate!
  @server = WEBrick::HTTPServer.new(
    BindAddress: bind,
    Port: port,
    Logger: logger || WEBrick::Log.new(File::NULL),
    AccessLog: []
  )
  @port = @server.listeners.first.addr[1]
  mount_routes
end

Instance Attribute Details

#portObject (readonly)

Returns the value of attribute port.



21
22
23
# File 'lib/mendix_bridge/backend_server.rb', line 21

def port
  @port
end

Instance Method Details

#shutdownObject



58
59
60
# File 'lib/mendix_bridge/backend_server.rb', line 58

def shutdown
  @server.shutdown
end

#startObject



54
55
56
# File 'lib/mendix_bridge/backend_server.rb', line 54

def start
  @server.start
end