Class: RedisModel::Intersected

Inherits:
Base
  • Object
show all
Defined in:
lib/redis_model/intersected.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

connection, custom_key_label, data_type, redis_model_schema, #to_value

Constructor Details

#initialize(sets, seed = rand(256)) ⇒ Intersected

Returns a new instance of Intersected.



7
8
9
10
# File 'lib/redis_model/intersected.rb', line 7

def initialize(sets, seed = rand(256))
  @sets = sets
  @key_label = (@sets.map(&:key_label) + [DateTime.current.to_i, seed]).compact.join(':')
end

Instance Attribute Details

#key_labelObject (readonly)

Returns the value of attribute key_label.



3
4
5
# File 'lib/redis_model/intersected.rb', line 3

def key_label
  @key_label
end

Instance Method Details

#generate(expire_in = nil) ⇒ Object



12
13
14
15
# File 'lib/redis_model/intersected.rb', line 12

def generate(expire_in = nil)
  RedisModel::Base.connection.zinterstore @key_label, @sets.map(&:key_label)
  RedisModel::Base.connection.expire(@key_label, expire_in) if expire_in
end