module MediaWiki::TestWiki::RSpecAdapter

Constants

PROXY_NAME
Proxy

Public Instance Methods

enhance(config, *args) click to toggle source
# File lib/media_wiki/test_wiki/rspec_adapter.rb, line 41
def enhance(config, *args)
  return if config.respond_to?(PROXY_NAME)
  init_config(Proxy.new, config, *args)
  config
end
extended(base) click to toggle source
# File lib/media_wiki/test_wiki/rspec_adapter.rb, line 47
def extended(base)
  init_proxy(RSpec.configuration.send(PROXY_NAME), base.metadata)
  base
end

Private Instance Methods

init_config(mw, config, *args) click to toggle source
# File lib/media_wiki/test_wiki/rspec_adapter.rb, line 54
def init_config(mw, config, *args)
  config.add_setting PROXY_NAME, default: mw

  config.after   :context, *args do mw.pool.clean end
  config.extend  self,     *args
  config.include Helpers,  *args

  config.filter_run_excluding required_version: lambda { |value|
    version = mw.version and not
      Gem::Requirement.new(Array(value)).satisfied_by?(version)
  }
end
init_proxy(mw, options = {}) click to toggle source
# File lib/media_wiki/test_wiki/rspec_adapter.rb, line 67
def init_proxy(mw, options = {})
  version, size = options.values_at(:version, :pool_size)

  mw.pool = DockerPool.new(size, nil, true) { |config|
    mw.version = Gem::Version.new(config.version = version) if version
    mw.config = { username: config.username, password: config.password }
  }
end