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") new_key_error(message, key_error).tap do |error| error.set_backtrace(key_error.backtrace) end end
def new_key_error(message, key_error)
def new_key_error(message, key_error) KeyError.new(message, key: key_error.key, receiver: key_error.receiver) end
def new_key_error(message, _)
def new_key_error(message, _) KeyError.new(message) end
def register(name, item)
def register(name, item) @items[name] = item end
def registered?(name)
def registered?(name) @items.key?(name) end