Parent

Class/Module Index [+]

Quicksearch

Selenium::WebDriver::Safari::Extension

Constants

PLIST

Public Class Methods

new(opts = {}) click to toggle source
# File lib/selenium/webdriver/safari/extension.rb, line 41
def initialize(opts = {})
  @custom_data_dir = opts[:custom_data_dir]
  @installed       = false
end

Public Instance Methods

backup_directory() click to toggle source
# File lib/selenium/webdriver/safari/extension.rb, line 84
def backup_directory
  Pathname.new("#{install_directory.to_s}.bak")
end
extension_destination() click to toggle source
# File lib/selenium/webdriver/safari/extension.rb, line 80
def extension_destination
  install_directory.join('WebDriver.safariextz')
end
extension_source() click to toggle source
# File lib/selenium/webdriver/safari/extension.rb, line 76
def extension_source
  Safari.resource_path.join('SafariDriver.safariextz')
end
install() click to toggle source
# File lib/selenium/webdriver/safari/extension.rb, line 46
def install
  return if @installed

  if install_directory.exist?
    FileUtils.mv install_directory.to_s, backup_directory.to_s
  end

  install_directory.mkpath

  extension_destination.rmtree if extension_destination.exist?
  FileUtils.cp extension_source.to_s, extension_destination.to_s

  plist_destination.open('w') { |io| io << PLIST }

  at_exit { uninstall }
  @installed = true
end
install_directory() click to toggle source
# File lib/selenium/webdriver/safari/extension.rb, line 92
def install_directory
  @install_directory ||= (
    data_dir = Pathname.new(@custom_data_dir || safari_data_dir)

    unless data_dir.exist? && data_dir.directory?
      raise Errno::ENOENT, "Safari data directory not found at #{dir.to_s}"
    end

    data_dir.join('Extensions')
  )
end
plist_destination() click to toggle source
# File lib/selenium/webdriver/safari/extension.rb, line 88
def plist_destination
  install_directory.join('Extensions.plist')
end
safari_data_dir() click to toggle source
# File lib/selenium/webdriver/safari/extension.rb, line 104
def safari_data_dir
  current = Platform.os

  case current
  when :macosx
    Pathname.new(Platform.home).join('Library/Safari')
  when :windows
    Pathname.new(ENV['APPDATA']).join('Apple Computer/Safari')
  else
    raise Error::WebDriverError, "unsupported platform: #{current}"
  end
end
uninstall() click to toggle source
# File lib/selenium/webdriver/safari/extension.rb, line 64
def uninstall
  return unless @installed

  install_directory.rmtree if install_directory.exist?

  if backup_directory.exist?
    FileUtils.mv backup_directory.to_s, install_directory.to_s
  end
ensure
  @installed = false
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.