Sha256: ecf24d7ef3fc4db34b8dea252064269ed78f70d1f48d444c771828f199f614e1

Contents?: true

Size: 1000 Bytes

Versions: 2

Compression:

Stored size: 1000 Bytes

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

module Aranha
  module Selenium
    class DriverFactory
      class << self
        def create_driver(options = {})
          new(options).create_driver
        end
      end

      attr_reader :options

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

      def create_driver
        driver_class.new(driver_options).build
      end

      def driver_name
        (options[:driver] || default_driver_name).to_s
      end

      def driver_class
        Aranha::Selenium::DriverFactory.const_get(driver_name.classify)
      rescue NameError
        raise "Unknown Aranha Selenium driver: \"#{driver_name}\"" \
          " (Class \"Aranha::Selenium::DriverFactory::#{driver_name.classify}\" not found)"
      end

      def default_driver_name
        :firefox
      end

      def driver_options
        options.except(:driver)
      end

      require_sub __FILE__
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
aranha-selenium-0.7.0 lib/aranha/selenium/driver_factory.rb
aranha-selenium-0.6.1 lib/aranha/selenium/driver_factory.rb