require 'set' module Shoulda module Matchers module Integrations # @private class Configuration def self.apply(configuration, &block) new(configuration, &block).apply end def initialize(configuration, &block) @test_frameworks = Set.new @libraries = Set.new test_framework :missing_test_framework library :missing_library block.call(self) end def test_framework(name) clear_default_test_framework @test_frameworks << Integrations.find_test_framework!(name) end def library(name) @libraries << Integrations.find_library!(name) end def apply if no_test_frameworks_added? && no_libraries_added? raise ConfigurationError, <