module RSpec::Determinator

Constants

DO_NOT_USE_IN_PRODUCTION_CODE_NULL_FEATURE_CACHE

Public Class Methods

included(by) click to toggle source
# File lib/rspec/determinator.rb, line 9
def self.included(by)
  by.extend(DSL)

  by.let(:fake_retriever) { ::Determinator::Retrieve::InMemoryRetriever.new }
  by.let(:fake_determinator) { ::RSpec::Determinator::FakeDeterminator.new(fake_retriever) }
  by.around do |example|
    old_retriever = ::Determinator.instance.retrieval
    begin
      fake_retriever.clear!
      ::Determinator.configure(retrieval: fake_retriever, feature_cache: DO_NOT_USE_IN_PRODUCTION_CODE_NULL_FEATURE_CACHE)
      example.run
    ensure
      ::Determinator.configure(retrieval: old_retriever, feature_cache: DO_NOT_USE_IN_PRODUCTION_CODE_NULL_FEATURE_CACHE)
    end
  end
end