class FrozenRecord::UniqueIndex
Public Instance Methods
build(records)
click to toggle source
# File lib/frozen_record/index.rb, line 68 def build(records) @index = records.each_with_object({}) { |r, index| index[r[attribute]] = r } if @index.size != records.size raise AttributeNonUnique, "#{model}##{attribute.inspect} is not unique." end @index.freeze end
lookup(value)
click to toggle source
# File lib/frozen_record/index.rb, line 63 def lookup(value) record = @index[value] record ? [record] : EMPTY_ARRAY end
lookup_multi(values)
click to toggle source
# File lib/frozen_record/index.rb, line 57 def lookup_multi(values) results = @index.values_at(*values) results.compact! results end
unique?()
click to toggle source
# File lib/frozen_record/index.rb, line 53 def unique? true end