Module: Crspec::FailureAggregator

Defined in:
lib/crspec/expectations.rb

Overview

Fiber-local failure accumulator backing aggregate_failures.

Constant Summary collapse

STORAGE_KEY =
:crspec_failure_aggregator

Class Method Summary collapse

Class Method Details

.active?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/crspec/expectations.rb', line 22

def self.active?
  !Fiber[STORAGE_KEY].nil?
end

.aggregateObject



30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/crspec/expectations.rb', line 30

def self.aggregate
  previous = Fiber[STORAGE_KEY]
  Fiber[STORAGE_KEY] = []
  begin
    yield
    failures = Fiber[STORAGE_KEY]
    raise MultipleExpectationsNotMetError, failures if failures.size > 1
    raise ExpectationNotMetError, failures.first if failures.size == 1
  ensure
    Fiber[STORAGE_KEY] = previous
  end
end

.record(message) ⇒ Object



26
27
28
# File 'lib/crspec/expectations.rb', line 26

def self.record(message)
  Fiber[STORAGE_KEY] << message
end