Sha256: 3afba47dece42802863d02c9732aa6cfec136ec53189d3488d57cd3232c3fa18

Contents?: true

Size: 1.78 KB

Versions: 17

Compression:

Stored size: 1.78 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 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

17 entries across 17 versions & 2 rubygems

Version Path
ehbrs-tools-0.20.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.19.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.18.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.17.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.16.5 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.16.4 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.16.3 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.16.2 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.16.1 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.16.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.15.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.14.1 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.14.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.13.1 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.13.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb
aranha-selenium-0.1.3 lib/aranha/selenium/driver_factory/base.rb
ehbrs-tools-0.12.0 vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb