module FactoryTrace

Constants

VERSION

Public Class Methods

configuration() click to toggle source
# File lib/factory_trace.rb, line 63
def configuration
  @configuration ||= Configuration.new
end
configure() { |configuration| ... } click to toggle source
# File lib/factory_trace.rb, line 59
def configure
  yield(configuration)
end
start() click to toggle source
# File lib/factory_trace.rb, line 39
def start
  return unless configuration.enabled
  trace_definitions! if configuration.trace_definition?

  tracker.track!
end
stop() click to toggle source
# File lib/factory_trace.rb, line 46
def stop
  return unless configuration.enabled

  # This is required to exclude parent traits from +defined_traits+
  FactoryBot.reload

  if configuration.mode?(:full)
    Writers::ReportWriter.new(configuration.out, configuration).write(Processors::FindUnused.call(defined, used))
  elsif configuration.mode?(:trace_only)
    Writers::TraceWriter.new(configuration.out, configuration).write(defined, used)
  end
end

Private Class Methods

defined() click to toggle source
# File lib/factory_trace.rb, line 73
def defined
  @defined ||= Preprocessors::ExtractDefined.call
end
trace_definitions!() click to toggle source
# File lib/factory_trace.rb, line 81
def trace_definitions!
  FactoryBot::Factory.prepend(FactoryTrace::MonkeyPatches::Factory)
  FactoryBot::Trait.prepend(FactoryTrace::MonkeyPatches::Trait)
  FactoryBot::Syntax::Default::DSL.prepend(FactoryTrace::MonkeyPatches::Default::DSL)
  FactoryBot::DefinitionProxy.prepend(FactoryTrace::MonkeyPatches::DefinitionProxy)
end
tracker() click to toggle source
# File lib/factory_trace.rb, line 77
def tracker
  @tracker ||= Tracker.new
end
used() click to toggle source
# File lib/factory_trace.rb, line 69
def used
  @used ||= Preprocessors::ExtractUsed.call(tracker.storage)
end