class Shoulda::Matchers::Integrations::Configuration
@private
Attributes
Public Class Methods
Source
# File lib/shoulda/matchers/integrations/configuration.rb, line 8 def self.apply(&block) new(&block).apply end
Source
# File lib/shoulda/matchers/integrations/configuration.rb, line 14 def initialize(&block) @test_frameworks = Set.new @libraries = Set.new test_framework :missing_test_framework library :missing_library block.call(self) end
Public Instance Methods
Source
# File lib/shoulda/matchers/integrations/configuration.rb, line 33 def apply if no_test_frameworks_added? && no_libraries_added? raise ConfigurationError, <<EOT shoulda-matchers is not configured correctly. You need to specify at least one test framework and/or library. For example: Shoulda::Matchers.configure do |config| config.integrate do |with| with.test_framework :rspec with.library :rails end end EOT end @test_frameworks.each do |test_framework| test_framework.include(Shoulda::Matchers::Independent) @libraries.each { |library| library.integrate_with(test_framework) } end self end
Source
# File lib/shoulda/matchers/integrations/configuration.rb, line 29 def library(name) @libraries << Integrations.find_library!(name) end
Source
# File lib/shoulda/matchers/integrations/configuration.rb, line 24 def test_framework(name) clear_default_test_framework @test_frameworks << Integrations.find_test_framework!(name) end
Private Instance Methods
Source
# File lib/shoulda/matchers/integrations/configuration.rb, line 58 def clear_default_test_framework @test_frameworks.select!(&:present?) end
Source
# File lib/shoulda/matchers/integrations/configuration.rb, line 66 def no_libraries_added? @libraries.empty? end
Source
# File lib/shoulda/matchers/integrations/configuration.rb, line 62 def no_test_frameworks_added? @test_frameworks.empty? || @test_frameworks.none?(&:present?) end