Sha256: 32401865b6376a3457c2b47b9cb42e701a41b5a1e4e1802fa1246873f28b74c3

Contents?: true

Size: 1.44 KB

Versions: 99

Compression:

Stored size: 1.44 KB

Contents

module Selenium
  module WebDriver
    module Firefox

      # @api private
      class ProfilesIni

        def initialize
          @ini_path = File.join(Util.app_data_path, "profiles.ini")
          @profile_paths = {}

          parse if File.exist?(@ini_path)
        end

        def [](name)
          path = @profile_paths[name]
          path && Profile.new(path)
        end

        def refresh
          @profile_paths.clear
          parse
        end

        private

        def parse
          string      = File.read @ini_path
          name        = nil
          is_relative = nil
          path        = nil

          string.split("\n").each do |line|
            case line
            when /^\[Profile/
              if p = path_for(name, is_relative, path)
                @profile_paths[name] = p
                name, path = nil
              end
            when /^Name=(.+)$/
              name = $1.strip
            when /^IsRelative=(.+)$/
              is_relative = $1.strip == "1"
            when /^Path=(.+)$/
              path = $1.strip
            end
          end

          if p = path_for(name, is_relative, path)
            @profile_paths[name] = p
          end
        end

        def path_for(name, is_relative, path)
          return unless [name, path].any?
          path = is_relative ? File.join(Util.app_data_path, path) : path
        end

      end # ProfilesIni
    end # Firefox
  end # WebDriver
end # Selenium

Version data entries

99 entries across 99 versions & 5 rubygems

Version Path
selenium-webdriver-2.45.0 lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.45.0.dev3 lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.45.0.dev2 lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.45.0.dev lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.44.0 lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.44.0.dev lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.43.0 lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.42.0 lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.41.0 lib/selenium/webdriver/firefox/profiles_ini.rb
browserstack-webdriver-2.40.1 lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.40.0 lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.40.0.rc2 lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.40.0.rc1 lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.39.0 lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.38.0 lib/selenium/webdriver/firefox/profiles_ini.rb
browserstack-webdriver-0.0.22 lib/selenium/webdriver/firefox/profiles_ini.rb
browserstack-webdriver-0.0.1 lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.37.0 lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.35.1 lib/selenium/webdriver/firefox/profiles_ini.rb
selenium-webdriver-2.35.0 lib/selenium/webdriver/firefox/profiles_ini.rb