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