class Capybara::Poltergeist::Inspector

Constants

BROWSERS
DEFAULT_PORT

Attributes

port[R]

Public Class Methods

browser_binary_exists?(browser) click to toggle source
# 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
detect_browser() click to toggle source
# File lib/capybara/poltergeist/inspector.rb, line 6
def self.detect_browser
  @browser ||= BROWSERS.find { |name| browser_binary_exists?(name) }
end
new(browser = nil, port = DEFAULT_PORT) click to toggle source
# 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

Public Instance Methods

browser() click to toggle source
# File lib/capybara/poltergeist/inspector.rb, line 17
def browser
  @browser ||= self.class.detect_browser
end
open() click to toggle source
# 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
url() click to toggle source
# File lib/capybara/poltergeist/inspector.rb, line 21
def url
  "http://localhost:#{port}/"
end