Sha256: 38d04708fccf1e97cbb30b4749f9795566372eb02a5b6ea32c1e1b0dfcb6dee2
Contents?: true
Size: 784 Bytes
Versions: 97
Compression:
Stored size: 784 Bytes
Contents
module FactoryGirl class Registry include Enumerable def initialize(name) @name = name @items = {} end def add(item) item.names.each { |name| add_as(name, item) } item end def find(name) @items[name.to_sym] or raise ArgumentError.new("#{@name} not registered: #{name.to_s}") end def each(&block) @items.values.uniq.each(&block) end def [](name) find(name) end def registered?(name) @items.key?(name.to_sym) end def clear @items.clear end private def add_as(name, item) if registered?(name) raise DuplicateDefinitionError, "#{@name} already registered: #{name}" else @items[name.to_sym] = item end end end end
Version data entries
97 entries across 88 versions & 5 rubygems