class Capybara::Apparition::Inspector
Constants
- BROWSERS
TODO: IS this necessary anymore?
- DEFAULT_PORT
Attributes
port[R]
Public Class Methods
browser_binary_exists?(browser)
click to toggle source
# File lib/capybara/apparition/inspector.rb, line 38 def self.browser_binary_exists?(browser) exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : [''] ENV['PATH'].split(File::PATH_SEPARATOR).each do |path| exts.each do |ext| exe = "#{path}#{File::SEPARATOR}#{browser}#{ext}" return exe if File.executable? exe end end nil end
detect_browser()
click to toggle source
# File lib/capybara/apparition/inspector.rb, line 9 def self.detect_browser @browser ||= BROWSERS.find { |name| browser_binary_exists?(name) } # rubocop:disable Naming/MemoizedInstanceVariableName end
new(browser = nil, port = DEFAULT_PORT)
click to toggle source
# File lib/capybara/apparition/inspector.rb, line 15 def initialize(browser = nil, port = DEFAULT_PORT) @browser = browser.respond_to?(:to_str) ? browser : nil @port = port end
Public Instance Methods
browser()
click to toggle source
# File lib/capybara/apparition/inspector.rb, line 20 def browser @browser ||= self.class.detect_browser end
open(scheme)
click to toggle source
# File lib/capybara/apparition/inspector.rb, line 28 def open(scheme) if browser Process.spawn(browser, url(scheme)) else raise Error, "Could not find a browser executable to open #{url(scheme)}. " \ "You can specify one manually using e.g. `:inspector => 'chromium'` " \ 'as a configuration option for Apparition.' end end
url(scheme)
click to toggle source
# File lib/capybara/apparition/inspector.rb, line 24 def url(scheme) "#{scheme}://localhost:#{port}/" end