You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: definition_tracer.rb
    path of file: ./repos/crystalball/lib/crystalball/map_generator/object_sources_detector
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

module Crystalball
  class MapGenerator
    class ObjectSourcesDetector
      # Class to save paths to classes and modules definitions during code loading. Should be
      # started as soon as possible. Use #
    
        def start
          self.trace_point ||= TracePoint.new(:class) do |tp|
            mod = tp.self
            path = tp.path

            next unless path&.start_with?(root_path)

            constants_definition_paths[mod] ||= []
            constants_definition_paths[mod] << path
          end.tap(&:enable)
        end

        def stop
          trace_point&.disable
          self.trace_point = nil
        end

        private

        attr_writer :trace_point, :constants_definition_paths
      end