Class: Lunar::RangeSets

Inherits:
Array
  • Object
show all
Defined in:
lib/lunar/sets.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(prefix, range, field) ⇒ RangeSets

Returns a new instance of RangeSets.



41
42
43
44
45
46
47
# File 'lib/lunar/sets.rb', line 41

def initialize(prefix, range, field)
  @prefix = prefix
  @field  = field
  @range  = range

  super [write_and_retrieve_key]
end

Instance Attribute Details

#fieldObject (readonly)

Returns the value of attribute field.



39
40
41
# File 'lib/lunar/sets.rb', line 39

def field
  @field
end

#prefixObject (readonly)

Returns the value of attribute prefix.



39
40
41
# File 'lib/lunar/sets.rb', line 39

def prefix
  @prefix
end

#rangeObject (readonly)

Returns the value of attribute range.



39
40
41
# File 'lib/lunar/sets.rb', line 39

def range
  @range
end

Instance Method Details

#keyObject



57
58
59
# File 'lib/lunar/sets.rb', line 57

def key
  @key ||= Lunar.nest[prefix][field]["#{ range.first }_TO_#{ range.last }"]
end

#write_and_retrieve_keyObject



49
50
51
52
53
54
55
# File 'lib/lunar/sets.rb', line 49

def write_and_retrieve_key
  zrange = Lunar.redis.zrangebyscore(Lunar.nest[prefix][field], 
                                     @range.first, @range.last)

  zrange.each { |id| Lunar.redis.zadd key, 1, id }
  key.to_s
end