Module: Perfgate::RSpec::Discovery

Defined in:
lib/perfgate/rspec/discovery.rb

Overview

Discovers RSpec examples tagged for Baseline (:baseline metadata, spec section 9.1) after spec files have been loaded, and registers a Workload for each one.

::RSpec.world.all_examples is a private RSpec::Core API, but it is widely relied on by tooling that inspects a loaded suite and has been stable across RSpec 3.x releases.

Class Method Summary collapse

Class Method Details

.call(registry: Perfgate.registry, builder: default_builder) ⇒ Object



17
18
19
20
21
22
23
24
# File 'lib/perfgate/rspec/discovery.rb', line 17

def call(registry: Perfgate.registry, builder: default_builder)
  ::RSpec.world.all_examples.each do |example|
    next unless example.[:perfgate]

    registry.register(builder.build(example))
  end
  registry
end

.default_builderObject



26
27
28
# File 'lib/perfgate/rspec/discovery.rb', line 26

def default_builder
  WorkloadBuilder.new(defaults: Perfgate.configuration.execution_defaults)
end