class FactoryBot::Registry

def clear

def clear
  @items.clear
end

def each(&block)

def each(&block)
  @items.values.uniq.each(&block)
end

def find(name)

def find(name)
  @items.fetch(name)
rescue KeyError => e
  raise key_error_with_custom_message(e)
end

def initialize(name)

def initialize(name)
  @name = name
  @items = ActiveSupport::HashWithIndifferentAccess.new
end

def key_error_with_custom_message(key_error)

def key_error_with_custom_message(key_error)
  message = key_error.message.sub("key not found", "#{@name} not registered")
  error = KeyError.new(message)
  error.set_backtrace(key_error.backtrace)
  error
end

def register(name, item)

def register(name, item)
  @items[name] = item
end

def registered?(name)

def registered?(name)
  @items.key?(name)
end