Sha256: 1c6936db6afe3577b595bd609edad3de50920b1905f71677aca34089fd89f578

Contents?: true

Size: 1.12 KB

Versions: 10

Compression:

Stored size: 1.12 KB

Contents

module MediawikiSelenium
  module BrowserFactory
    autoload :Base, 'mediawiki_selenium/browser_factory/base'
    autoload :Firefox, 'mediawiki_selenium/browser_factory/firefox'
    autoload :Chrome, 'mediawiki_selenium/browser_factory/chrome'
    autoload :Phantomjs, 'mediawiki_selenium/browser_factory/phantomjs'

    # Resolves and instantiates a new factory for the given browser name. If a
    # specific implementation is not defined for the given browser, a `Base`
    # factory will be returned.
    #
    # @example Create a new firefox factory
    #   factory = BrowserFactory.new(:firefox)
    #   # => #<MediawikiSelenium::BrowserFactory::Firefox>
    #   factory.browser_for(env) # => #<Watir::Browser>
    #
    # @param browser_name [Symbol] Browser name.
    #
    # @return [BrowserFactory::Base]
    #
    def self.new(browser_name)
      factory_class_name = browser_name.to_s.split('_').map(&:capitalize).join('')

      if const_defined?(factory_class_name)
        factory_class = const_get(factory_class_name)
      else
        factory_class = Base
      end

      factory_class.new(browser_name)
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
mediawiki_selenium-1.8.1 lib/mediawiki_selenium/browser_factory.rb
mediawiki_selenium-1.8.0 lib/mediawiki_selenium/browser_factory.rb
mediawiki_selenium-1.7.4 lib/mediawiki_selenium/browser_factory.rb
mediawiki_selenium-1.7.3 lib/mediawiki_selenium/browser_factory.rb
mediawiki_selenium-1.7.2 lib/mediawiki_selenium/browser_factory.rb
mediawiki_selenium-1.7.1 lib/mediawiki_selenium/browser_factory.rb
mediawiki_selenium-1.7.0 lib/mediawiki_selenium/browser_factory.rb
mediawiki_selenium-1.6.5 lib/mediawiki_selenium/browser_factory.rb
mediawiki_selenium-1.6.4 lib/mediawiki_selenium/browser_factory.rb
mediawiki_selenium-1.6.3 lib/mediawiki_selenium/browser_factory.rb