class Crabfarm::Live::Manager
Attributes
browser_adapter[R]
primary_driver[R]
proxy_port[R]
Public Class Methods
new()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 15 def initialize reserve_port end
Public Instance Methods
block_requests() { || ... }
click to toggle source
# File lib/crabfarm/live/manager.rb, line 37 def block_requests begin stop_crabtrap return yield ensure restart_crabtrap nil end end
reset()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 32 def reset reset_primary_driver @viewer.reset end
restart_crabtrap(_memento=nil)
click to toggle source
# File lib/crabfarm/live/manager.rb, line 60 def restart_crabtrap(_memento=nil) options = if _memento path = Utils::Resolve.memento_path _memento raise ConfigurationError.new "No memento found at #{path}" unless File.exists? path { mode: :replay, bucket_path: path } else { mode: :pass } end stop_crabtrap start_crabtrap options end
show_content(_content)
click to toggle source
# File lib/crabfarm/live/manager.rb, line 50 def show_content(_content) block_requests { @viewer.show_content(_content) } end
show_file(_path)
click to toggle source
# File lib/crabfarm/live/manager.rb, line 46 def show_file(_path) block_requests { @viewer.show_file(_path) } end
show_primary_contents()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 54 def show_primary_contents unless @viewer_driver.nil? @viewer.show_content(primary_driver.to_html) end end
start()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 19 def start restart_crabtrap load_browser_adapter load_primary_driver_and_viewer @viewer.welcome end
stop()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 26 def stop release_primary_driver release_viewer_driver stop_crabtrap end
Private Instance Methods
build_support_driver()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 99 def build_support_driver case config.recorder_driver when :firefox Crabfarm::Support::WebdriverFactory.build_firefox_driver driver_config when :chrome Crabfarm::Support::WebdriverFactory.build_chrome_driver driver_config else return nil end end
config()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 153 def config Crabfarm.config end
crabtrap_address()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 149 def crabtrap_address "127.0.0.1:#{@proxy_port}" end
driver_config()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 143 def driver_config { proxy: crabtrap_address } end
load_browser_adapter()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 79 def load_browser_adapter @browser_adapter = Strategies.load(:browser, config.browser).new crabtrap_address @browser_adapter.prepare_driver_services end
load_primary_driver_and_viewer()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 84 def load_primary_driver_and_viewer @primary_driver = browser_adapter.build_driver :default_driver # IDEA: improve this to allow different viewer modes unless browser_adapter.headless? primary_webdriver = browser_adapter.extract_webdriver @primary_driver @viewer = Viewer.new primary_webdriver unless primary_webdriver.nil? end if @viewer.nil? @viewer_driver = build_support_driver @viewer = Viewer.new @viewer_driver end end
release_primary_driver()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 129 def release_primary_driver @browser_adapter.release_driver @primary_driver @browser_adapter.cleanup_driver_services @primary_driver = nil end
release_viewer_driver()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 135 def release_viewer_driver unless @viewer_driver.nil? @viewer_driver.quit rescue nil @viewer_driver = nil @viewer = nil end end
reserve_port()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 75 def reserve_port @proxy_port = Utils::PortDiscovery.find_available_port end
reset_primary_driver()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 108 def reset_primary_driver @browser_adapter.reset_driver @primary_driver end
start_crabtrap(_options)
click to toggle source
# File lib/crabfarm/live/manager.rb, line 112 def start_crabtrap(_options) _options = _options.merge({ port: @proxy_port, virtual: File.expand_path('./assets/live-tools', Crabfarm.root) }) @crabtrap = CrabtrapRunner.new config.crabtrap_config.merge(_options) @crabtrap.start end
stop_crabtrap()
click to toggle source
# File lib/crabfarm/live/manager.rb, line 122 def stop_crabtrap unless @crabtrap.nil? @crabtrap.kill @crabtrap = nil else nil end end