class Rediscord::RecordZset

Attributes

score[R]

Public Class Methods

new(options) click to toggle source
Calls superclass method Rediscord::RecordSet::new
# File lib/rediscord/record_zset.rb, line 5
def initialize(options)
  super
  @score = options[:score]
end

Public Instance Methods

after_create(record) click to toggle source
# File lib/rediscord/record_zset.rb, line 14
def after_create(record)
  redis.zadd(key_for(record), score_for(record), record.id)
end
after_destroy(record) click to toggle source
# File lib/rediscord/record_zset.rb, line 18
def after_destroy(record)
  redis.zrem(key_for(record), record.id)
end
after_update(record, prev_record) click to toggle source
# File lib/rediscord/record_zset.rb, line 22
def after_update(record, prev_record)
  _key_was = key_for(prev_record)
  _key = key_for(record)

  _score = score_for(record)
  _score_was = score_for(prev_record)

  if force_update || _key_was != _key || _score != _score_was
    redis.zrem(_key_was, record.id)
    redis.zadd(_key, score_for(record), record.id)
  end
end
score_for(record) click to toggle source
# File lib/rediscord/record_zset.rb, line 10
def score_for(record)
  score.call(record)
end