Sha256: 92fba1388a522d2e3074fc918fd942dec68075d7d5fe81bcf472be9e14100f74

Contents?: true

Size: 1.92 KB

Versions: 21

Compression:

Stored size: 1.92 KB

Contents

# frozen_string_literal: true

require 'active_support/json'
require 'active_support/core_ext/hash/indifferent_access'
require 'selenium-webdriver'
require 'tmpdir'

module Aranha
  module Selenium
    class DriverFactory
      class Base
        DEFAULT_DOWNLOADS_DIR = ::File.join(::Dir.tmpdir, 'aranha_downloads_dir')
        DEFAULT_ACCEPT_INSECURE_CERTS = false
        DEFAULT_HEADLESS = false
        DEFAULT_USER_AGENT = nil

        class << self
          attr_writer :default_accept_insecure_certs, :default_downloads_dir, :default_headless,
                      :default_user_agent

          def default_downloads_dir
            @default_downloads_dir || DEFAULT_DOWNLOADS_DIR
          end

          def default_accept_insecure_certs
            @default_accept_insecure_certs || DEFAULT_ACCEPT_INSECURE_CERTS
          end

          def default_headless
            @default_headless || DEFAULT_HEADLESS
          end

          def default_user_agent
            @default_user_agent || DEFAULT_USER_AGENT
          end
        end

        attr_reader :options

        def initialize(options)
          @options = options.with_indifferent_access.freeze
        end

        def build
          raise 'Must be overrided'
        end

        def downloads_dir
          option_value(:downloads_dir)
        end

        def accept_insecure_certs?
          option_value(:accept_insecure_certs)
        end

        def headless?
          option_value(:headless)
        end

        def profile_dir
          options[:profile_dir].to_s
        end

        def profile_name
          options[:profile_name]
        end

        def user_agent
          option_value(:user_agent)
        end

        private

        def option_value(key)
          if options.key?(key)
            options.fetch(key)
          else
            ::Aranha::Selenium::DriverFactory::Base.send("default_#{key}")
          end
        end
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 2 rubygems

Version Path
aranha-selenium-0.5.0 lib/aranha/selenium/driver_factory/base.rb
aranha-selenium-0.4.2 lib/aranha/selenium/driver_factory/base.rb
aranha-selenium-0.4.1 lib/aranha/selenium/driver_factory/base.rb
aranha-selenium-0.4.0 lib/aranha/selenium/driver_factory/base.rb
aranha-selenium-0.3.0 lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.28.3 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.28.2 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.28.1 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.28.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.27.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.26.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.25.1 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.25.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.24.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
aranha-selenium-0.2.2 lib/aranha/selenium/driver_factory/base.rb
aranha-selenium-0.2.1 lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.23.1 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.23.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.22.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.21.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb