Method: Relix::UniqueIndex#index

Defined in:
lib/relix/indexes/unique.rb

#index(r, pk, object, value, old_value) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/relix/indexes/unique.rb', line 29

def index(r, pk, object, value, old_value)
  if read(object).values.all?{|e| !e.nil?}
    r.hset(hash_name, value, pk)
    r.zadd(sorted_set_name, score(object, value), pk)
  else
    r.hdel(hash_name, value)
    r.zrem(sorted_set_name, pk)
  end
  r.hdel(hash_name, old_value)
end