class Selenium::WebDriver::Safari::Extensions
@api private
Constants
- PLIST
- PLIST_EXTENSION_LINE
Public Class Methods
new(opts = {})
click to toggle source
# File lib/selenium/webdriver/safari/extensions.rb, line 49 def initialize(opts = {}) @data_dir = opts.data_dir || safari_data_dir @skip = opts.skip_extension_installation? @extensions = opts.extensions @backup = Backup.new @installed = false end
Public Instance Methods
extension_destination()
click to toggle source
# File lib/selenium/webdriver/safari/extensions.rb, line 113 def extension_destination install_directory.join('WebDriver.safariextz') end
extension_source()
click to toggle source
# File lib/selenium/webdriver/safari/extensions.rb, line 109 def extension_source Safari.resource_path.join('SafariDriver.safariextz') end
install()
click to toggle source
# File lib/selenium/webdriver/safari/extensions.rb, line 57 def install return if @installed installed_extensions = [] if install_directory.exist? @backup.backup install_directory end install_directory.mkpath unless @skip extension_destination.rmtree if extension_destination.exist? FileUtils.cp extension_source.to_s, extension_destination.to_s installed_extensions << extension_destination end @extensions.each do |extension| target = install_directory.join(extension.basename) if extension.expand_path == target.expand_path @backup.backup(target) else FileUtils.cp extension, target end installed_extensions << target end plist_destination.open('w') do |io| extension_lines = installed_extensions.map do |ext| name = ext.basename('.safariextz').to_s PLIST_EXTENSION_LINE % [name, name] end io << PLIST % extension_lines.join("\n") end Platform.exit_hook { uninstall } @installed = true end
install_directory()
click to toggle source
# File lib/selenium/webdriver/safari/extensions.rb, line 121 def install_directory @install_directory ||= ( data_dir = Pathname.new(@data_dir || safari_data_dir) unless data_dir.exist? && data_dir.directory? raise Errno::ENOENT, "Safari data directory not found at #{data_dir.to_s}" end data_dir.join('Extensions') ) end
plist_destination()
click to toggle source
# File lib/selenium/webdriver/safari/extensions.rb, line 117 def plist_destination install_directory.join('Extensions.plist') end
safari_data_dir()
click to toggle source
# File lib/selenium/webdriver/safari/extensions.rb, line 133 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/extensions.rb, line 98 def uninstall return unless @installed install_directory.rmtree if install_directory.exist? @backup.restore_all nil ensure @installed = false end