Class: Browserctl::CommandDispatcher
- Inherits:
-
Object
- Object
- Browserctl::CommandDispatcher
- 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, "watch" => :cmd_watch, "url" => :cmd_url, "ping" => :cmd_ping, "shutdown" => :cmd_shutdown }.freeze
Instance Method Summary collapse
- #dispatch(req) ⇒ Object
-
#initialize(pages, browser, snapshot_builder = SnapshotBuilder.new, mutex: Mutex.new) ⇒ CommandDispatcher
constructor
A new instance of CommandDispatcher.
Constructor Details
#initialize(pages, browser, snapshot_builder = SnapshotBuilder.new, mutex: Mutex.new) ⇒ CommandDispatcher
Returns a new instance of CommandDispatcher.
24 25 26 27 28 29 30 31 |
# File 'lib/browserctl/server/command_dispatcher.rb', line 24 def initialize(pages, browser, snapshot_builder = SnapshotBuilder.new, mutex: Mutex.new) @pages = pages @browser = browser @snapshot = snapshot_builder @mutex = mutex @ref_registries = {} @prev_snapshots = {} end |
Instance Method Details
#dispatch(req) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/browserctl/server/command_dispatcher.rb', line 33 def dispatch(req) handler = COMMAND_MAP[req[:cmd]] return { error: "unknown command: #{req[:cmd]}" } unless handler Browserctl.logger.debug("#{req[:cmd]} #{req[:name]}") send(handler, req) end |