Module: Browserctl

Defined in:
lib/browserctl.rb,
lib/browserctl/client.rb,
lib/browserctl/logger.rb,
lib/browserctl/runner.rb,
lib/browserctl/server.rb,
lib/browserctl/version.rb,
lib/browserctl/workflow.rb,
lib/browserctl/constants.rb,
lib/browserctl/recording.rb,
lib/browserctl/commands/fill.rb,
lib/browserctl/commands/init.rb,
lib/browserctl/commands/click.rb,
lib/browserctl/commands/watch.rb,
lib/browserctl/commands/record.rb,
lib/browserctl/commands/inspect.rb,
lib/browserctl/commands/snapshot.rb,
lib/browserctl/commands/open_page.rb,
lib/browserctl/commands/cli_output.rb,
lib/browserctl/commands/screenshot.rb,
lib/browserctl/server/idle_watcher.rb,
lib/browserctl/server/page_session.rb,
lib/browserctl/commands/pause_resume.rb,
lib/browserctl/server/snapshot_builder.rb,
lib/browserctl/server/command_dispatcher.rb

Defined Under Namespace

Modules: Commands Classes: Client, CommandDispatcher, IdleWatcher, PageProxy, PageSession, ParamDef, Recording, Runner, Server, SnapshotBuilder, StepDef, StepResult, WorkflowContext, WorkflowDefinition, WorkflowError

Constant Summary collapse

PLUGIN_COMMANDS =

rubocop:disable Style/MutableConstant

{}
LEVEL_MAP =
{
  "debug" => ::Logger::DEBUG,
  "info" => ::Logger::INFO,
  "warn" => ::Logger::WARN,
  "error" => ::Logger::ERROR
}.freeze
VERSION =
"0.3.1"
REGISTRY =

rubocop:disable Style/MutableConstant

{}
BROWSERCTL_DIR =
File.expand_path("~/.browserctl")
IDLE_TTL =
30 * 60
SOCKET_PATH =

Backward-compatible constants

socket_path
PID_PATH =
pid_path

Class Method Summary collapse

Class Method Details

.build_logger(level_name) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/browserctl/logger.rb', line 21

def self.build_logger(level_name)
  log = ::Logger.new($stderr)
  log.level    = LEVEL_MAP.fetch(level_name.to_s.downcase, ::Logger::INFO)
  log.progname = "browserd"
  log.formatter = proc { |sev, t, prog, msg| "#{t.strftime('%Y-%m-%dT%H:%M:%S')} #{sev[0]} [#{prog}] #{msg}\n" }
  log
end

.loggerObject



13
14
15
# File 'lib/browserctl/logger.rb', line 13

def self.logger
  @logger ||= build_logger("info")
end

.logger=(instance) ⇒ Object



17
18
19
# File 'lib/browserctl/logger.rb', line 17

def self.logger=(instance)
  @logger = instance
end

.pid_path(name = nil) ⇒ Object



11
12
13
# File 'lib/browserctl/constants.rb', line 11

def self.pid_path(name = nil)
  File.join(BROWSERCTL_DIR, name ? "#{name}.pid" : "browserd.pid")
end

.register_command(name, &block) ⇒ Object



12
13
14
# File 'lib/browserctl.rb', line 12

def self.register_command(name, &block)
  PLUGIN_COMMANDS[name.to_s] = block
end

.socket_path(name = nil) ⇒ Object



7
8
9
# File 'lib/browserctl/constants.rb', line 7

def self.socket_path(name = nil)
  File.join(BROWSERCTL_DIR, name ? "#{name}.sock" : "browserd.sock")
end

.workflow(name) ⇒ Object



168
169
170
171
172
# File 'lib/browserctl/workflow.rb', line 168

def self.workflow(name, &)
  defn = WorkflowDefinition.new(name.to_s)
  defn.instance_exec(&)
  REGISTRY[name.to_s] = defn
end