Sha256: 0d04e443b2c546ea5d9bf550c43928bc6254803f3cde55690965f3cb7ce92ed1

Contents?: true

Size: 607 Bytes

Versions: 6

Compression:

Stored size: 607 Bytes

Contents

module FactoryBot
  class Registry
    include Enumerable

    attr_reader :name

    def initialize(name)
      @name  = name
      @items = Decorator::ClassKeyHash.new({})
    end

    def clear
      @items.clear
    end

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

    def find(name)
      if registered?(name)
        @items[name]
      else
        raise ArgumentError, "#{@name} not registered: #{name}"
      end
    end

    alias :[] :find

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

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

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
factory_bot-4.11.1 lib/factory_bot/registry.rb
factory_bot-4.11.0 lib/factory_bot/registry.rb
factory_bot-4.10.0 lib/factory_bot/registry.rb
factory_bot-4.8.2 lib/factory_bot/registry.rb
factory_bot-1.0.1.alpha lib/factory_bot/registry.rb
factory_bot-1.0.0.alpha lib/factory_bot/registry.rb