class FactoryBot::Registry
Attributes
name[R]
Public Class Methods
new(name)
click to toggle source
# File lib/factory_bot/registry.rb, line 9 def initialize(name) @name = name @items = ActiveSupport::HashWithIndifferentAccess.new end
Public Instance Methods
clear()
click to toggle source
# File lib/factory_bot/registry.rb, line 14 def clear @items.clear end
each(&block)
click to toggle source
# File lib/factory_bot/registry.rb, line 18 def each(&block) @items.values.uniq.each(&block) end
find(name)
click to toggle source
# File lib/factory_bot/registry.rb, line 22 def find(name) @items.fetch(name) rescue KeyError => e raise key_error_with_custom_message(e) end
Also aliased as: []
register(name, item)
click to toggle source
# File lib/factory_bot/registry.rb, line 30 def register(name, item) @items[name] = item end
registered?(name)
click to toggle source
# File lib/factory_bot/registry.rb, line 34 def registered?(name) @items.key?(name) end
Private Instance Methods
key_error_with_custom_message(key_error)
click to toggle source
# File lib/factory_bot/registry.rb, line 40 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
new_key_error(message, key_error)
click to toggle source
# File lib/factory_bot/registry.rb, line 50 def new_key_error(message, key_error) KeyError.new(message, key: key_error.key, receiver: key_error.receiver) end