Module: Carpenter::Model::Strategy::RedisList
- Defined in:
- lib/carpenter/model/strategy/redis_list.rb
Instance Method Summary collapse
- #<<(value) ⇒ Object
- #[](range) ⇒ Object
- #[]=(index, value) ⇒ Object
- #casted_value(first, last) ⇒ Object
- #coerce(other) ⇒ Object
- #dup ⇒ Object
- #empty? ⇒ Boolean
- #get(first = 0, last = -1)) ⇒ Object
- #inspect ⇒ Object
- #raw_value(first, last) ⇒ Object
- #reload(first = 0, last = -1)) ⇒ Object
- #set(value) ⇒ Object
- #to_s ⇒ Object
- #value(first, last) ⇒ Object
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] |
#dup ⇒ Object
45 |
# File 'lib/carpenter/model/strategy/redis_list.rb', line 45 def dup = self.class.new(@definition, @key) |
#empty? ⇒ Boolean
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) |
#inspect ⇒ Object
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_s ⇒ Object
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 |