Module: RSpecTelemetry

Defined in:
lib/rspec_telemetry.rb,
lib/rspec_telemetry/cli.rb,
lib/rspec_telemetry/config.rb,
lib/rspec_telemetry/ndjson.rb,
lib/rspec_telemetry/writer.rb,
lib/rspec_telemetry/summary.rb,
lib/rspec_telemetry/version.rb,
lib/rspec_telemetry/analyzer.rb,
lib/rspec_telemetry/recorder.rb,
lib/rspec_telemetry/formatter.rb,
lib/rspec_telemetry/compare_cli.rb,
lib/rspec_telemetry/trace/viewer.rb,
lib/rspec_telemetry/console_report.rb,
lib/rspec_telemetry/trace/viewer/app.rb,
lib/rspec_telemetry/factory_comparison.rb,
lib/rspec_telemetry/trace/viewer/label.rb,
lib/rspec_telemetry/trace/viewer/theme.rb,
lib/rspec_telemetry/factory_aggregation.rb,
lib/rspec_telemetry/trace/viewer/format.rb,
lib/rspec_telemetry/trace/viewer/layout.rb,
lib/rspec_telemetry/trace/viewer/source.rb,
lib/rspec_telemetry/trace/viewer/version.rb,
lib/rspec_telemetry/trace/viewer/document.rb,
lib/rspec_telemetry/trace/viewer/time_bar.rb,
lib/rspec_telemetry/subscribers/factory_bot.rb,
lib/rspec_telemetry/trace/viewer/detail_pane.rb,
lib/rspec_telemetry/trace/viewer/report_pane.rb,
lib/rspec_telemetry/trace/viewer/report_view.rb,
lib/rspec_telemetry/trace/viewer/source_pane.rb,
lib/rspec_telemetry/trace/viewer/source_view.rb,
lib/rspec_telemetry/trace/viewer/status_line.rb,
lib/rspec_telemetry/trace/viewer/text_report.rb,
lib/rspec_telemetry/trace/viewer/app_renderer.rb,
lib/rspec_telemetry/trace/viewer/detail_lines.rb,
lib/rspec_telemetry/trace/viewer/pane_resizer.rb,
lib/rspec_telemetry/trace/viewer/timeline_pane.rb,
lib/rspec_telemetry/trace/viewer/source_resolver.rb,
lib/rspec_telemetry/trace/viewer/follow_controller.rb,
lib/rspec_telemetry/trace/viewer/screen/ranked_screen.rb,
lib/rspec_telemetry/trace/viewer/screen/timeline_screen.rb

Defined Under Namespace

Modules: FactoryAggregation, Ndjson, Subscribers, SummaryPrinter, Trace Classes: Analyzer, CLI, CompareCLI, Config, ConsoleReport, FactoryComparison, Formatter, Recorder, Summary, Writer

Constant Summary collapse

VERSION =
"0.3.0"

Class Method Summary collapse

Class Method Details

.configObject



11
12
13
# File 'lib/rspec_telemetry.rb', line 11

def config
  @config ||= Config.new
end

.configure {|config| ... } ⇒ Object

Yields:



15
16
17
18
# File 'lib/rspec_telemetry.rb', line 15

def configure
  yield config if block_given?
  config
end

.finish!Object



34
35
36
37
# File 'lib/rspec_telemetry.rb', line 34

def finish!
  @recorder&.finish
  unsubscribe!
end

.recorderObject



20
21
22
# File 'lib/rspec_telemetry.rb', line 20

def recorder
  @recorder ||= Recorder.new(config)
end

.reset!Object



39
40
41
42
43
44
# File 'lib/rspec_telemetry.rb', line 39

def reset!
  unsubscribe!
  @config = nil
  @recorder = nil
  @warned = nil
end

.safely(context) ⇒ Object



46
47
48
49
50
51
52
# File 'lib/rspec_telemetry.rb', line 46

def safely(context)
  yield
# Telemetry must never break the user's RSpec run, even on non-StandardError failures.
rescue Exception => e # rubocop:disable Lint/RescueException
  warn_once(context, e)
  nil
end

.start!Object



24
25
26
27
28
29
30
31
32
# File 'lib/rspec_telemetry.rb', line 24

def start!
  return unless config.enabled

  recorder.start
  return unless recorder.started?

  subscribe!
  recorder
end