# File lib/capybara/poltergeist/inspector.rb, line 35 def self.browser_binary_exists?(browser) exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : [''] ENV['PATH'].split(File::PATH_SEPARATOR).each do |path| exts.each { |ext| exe = "#{path}#{File::SEPARATOR}#{browser}#{ext}" return exe if File.executable? exe } end return nil end
# File lib/capybara/poltergeist/inspector.rb, line 6 def self.detect_browser @browser ||= BROWSERS.find { |name| browser_binary_exists?(name) } end
# File lib/capybara/poltergeist/inspector.rb, line 12 def initialize(browser = nil, port = DEFAULT_PORT) @browser = browser.respond_to?(:to_str) ? browser : nil @port = port end
# File lib/capybara/poltergeist/inspector.rb, line 17 def browser @browser ||= self.class.detect_browser end
# File lib/capybara/poltergeist/inspector.rb, line 25 def open if browser Process.spawn(browser, url) else raise Error, "Could not find a browser executable to open #{url}. " "You can specify one manually using e.g. `:inspector => 'chromium'` " "as a configuration option for Poltergeist." end end
# File lib/capybara/poltergeist/inspector.rb, line 21 def url "http://localhost:#{port}/" end