Module: Carpenter::Model::Strategy::RedisList

Defined in:
lib/carpenter/model/strategy/redis_list.rb

Instance Method Summary collapse

Instance Method Details

#<<(value) ⇒ Object



44
# File 'lib/carpenter/model/strategy/redis_list.rb', line 44

def <<(value) = Carpenter::REDIS&.rpush(@key, @type_caster.stringify(value))

#[](range) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/carpenter/model/strategy/redis_list.rb', line 18

def [](range)
  case range
  when Integer
    get(range, range).first
  when Range
    first = range.begin
    offset = range.exclude_end? ? 1 : 0
    last = range.end
    last = last - offset if last
    get(first, last)
  else
    raise "Unexpected type: #{range.class}"
  end
end

#[]=(index, value) ⇒ Object



33
34
35
# File 'lib/carpenter/model/strategy/redis_list.rb', line 33

def []=(index, value)
  Carpenter::REDIS&.lset(@key, index, @type_caster.stringify(value))
end

#casted_value(first, last) ⇒ Object



12
# File 'lib/carpenter/model/strategy/redis_list.rb', line 12

def casted_value(first, last) = raw_value(first, last).map { |v| @type_caster.cast(v) } || @default

#coerce(other) ⇒ Object



49
# File 'lib/carpenter/model/strategy/redis_list.rb', line 49

def coerce(other) = [other, get]

#dupObject



45
# File 'lib/carpenter/model/strategy/redis_list.rb', line 45

def dup = self.class.new(@definition, @key)

#empty?Boolean

Returns:



46
# File 'lib/carpenter/model/strategy/redis_list.rb', line 46

def empty? = (value = get) ? value.empty? : true

#get(first = 0, last = -1)) ⇒ Object



16
# File 'lib/carpenter/model/strategy/redis_list.rb', line 16

def get(first = 0, last = -1) = value(first, last)

#inspectObject



48
# File 'lib/carpenter/model/strategy/redis_list.rb', line 48

def inspect = get.inspect

#raw_value(first, last) ⇒ Object



11
# File 'lib/carpenter/model/strategy/redis_list.rb', line 11

def raw_value(first, last) = Carpenter::REDIS&.lrange(@key, first, last)

#reload(first = 0, last = -1)) ⇒ Object



14
# File 'lib/carpenter/model/strategy/redis_list.rb', line 14

def reload(first = 0, last = -1) = (@value = casted_value(first, last) if @store)

#set(value) ⇒ Object



37
38
39
40
41
42
# File 'lib/carpenter/model/strategy/redis_list.rb', line 37

def set(value)
  value = value.is_a?(Array) ? value.map { |v| @type_caster.stringify(v) } : @type_caster.stringify(value)

  Carpenter::REDIS&.del(@key)
  Carpenter::REDIS&.rpush(@key, value)
end

#to_sObject



47
# File 'lib/carpenter/model/strategy/redis_list.rb', line 47

def to_s = get.to_s

#value(first, last) ⇒ Object



3
4
5
6
7
8
9
# File 'lib/carpenter/model/strategy/redis_list.rb', line 3

def value(first, last)
  if @store
    @value ||= casted_value(first, last)
  else
    casted_value(first, last)
  end
end