Class: Browserctl::CommandDispatcher

Inherits:
Object
  • Object
show all
Defined in:
lib/browserctl/server/command_dispatcher.rb

Constant Summary collapse

COMMAND_MAP =
{
  "open_page" => :cmd_open_page,
  "close_page" => :cmd_close_page,
  "list_pages" => :cmd_list_pages,
  "goto" => :cmd_goto,
  "snapshot" => :cmd_snapshot,
  "evaluate" => :cmd_evaluate,
  "fill" => :cmd_fill,
  "click" => :cmd_click,
  "screenshot" => :cmd_screenshot,
  "wait_for" => :cmd_wait_for,
  "url" => :cmd_url,
  "ping" => :cmd_ping,
  "shutdown" => :cmd_shutdown
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(pages, browser, snapshot_builder = SnapshotBuilder.new) ⇒ CommandDispatcher

Returns a new instance of CommandDispatcher.



23
24
25
26
27
# File 'lib/browserctl/server/command_dispatcher.rb', line 23

def initialize(pages, browser, snapshot_builder = SnapshotBuilder.new)
  @pages    = pages
  @browser  = browser
  @snapshot = snapshot_builder
end

Instance Method Details

#dispatch(req) ⇒ Object



29
30
31
32
33
34
# File 'lib/browserctl/server/command_dispatcher.rb', line 29

def dispatch(req)
  handler = COMMAND_MAP[req[:cmd]]
  return { error: "unknown command: #{req[:cmd]}" } unless handler

  send(handler, req)
end