Module: Omnitest::Skeptic::Spies

Defined in:
lib/omnitest/skeptic/spies.rb

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.spiesObject (readonly)

Returns the value of attribute spies.



7
8
9
# File 'lib/omnitest/skeptic/spies.rb', line 7

def spies
  @spies
end

Class Method Details

.middlewareObject



9
10
11
# File 'lib/omnitest/skeptic/spies.rb', line 9

def middleware
  @middleware ||= Middleware::Builder.new
end

.observe(scenario, &blk) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/omnitest/skeptic/spies.rb', line 22

def observe(scenario, &blk)
  middleware = Middleware::Builder.new
  spies.each do |spy|
    middleware.use spy, Thread.current[:test_env_number]
  end
  middleware.use blk
  middleware.call(scenario)
end

.register_spy(spy) ⇒ Object



17
18
19
20
# File 'lib/omnitest/skeptic/spies.rb', line 17

def register_spy(spy)
  spies.add(spy)
  middleware.insert 0, spy, {}
end

.reportsObject



31
32
33
34
35
36
37
38
39
# File 'lib/omnitest/skeptic/spies.rb', line 31

def reports
  # Group by type
  all_reports = spies.flat_map do |spy|
    spy.reports.to_a if spy.respond_to? :reports
  end
  all_reports.each_with_object({}) do |(k, v), h|
    (h[k] ||= []) << v
  end
end