Class: Collectr::RedisArray
- Defined in:
- lib/collectr/redis/redis_array.rb
Instance Method Summary collapse
- #<<(obj) ⇒ Object
- #[](n) ⇒ Object
- #add(obj) ⇒ Object
- #clear ⇒ Object
- #datastore ⇒ Object
- #delete(obj) ⇒ Object
-
#initialize(name, options = {}) ⇒ RedisArray
constructor
A new instance of RedisArray.
- #pop ⇒ Object
- #size ⇒ Object
- #to_a ⇒ Object
Methods inherited from RedisBase
Constructor Details
#initialize(name, options = {}) ⇒ RedisArray
Returns a new instance of RedisArray.
7 8 9 10 11 |
# File 'lib/collectr/redis/redis_array.rb', line 7 def initialize(name, ={}) @title = name @max_size = [:max_size] if .has_key?(:max_size) @datastore = [:datastore] if .has_key?(:datastore) end |
Instance Method Details
#<<(obj) ⇒ Object
17 18 19 |
# File 'lib/collectr/redis/redis_array.rb', line 17 def <<(obj) add obj end |
#[](n) ⇒ Object
29 30 31 |
# File 'lib/collectr/redis/redis_array.rb', line 29 def [](n) deserialize(datastore.lindex @title, n) end |
#add(obj) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/collectr/redis/redis_array.rb', line 21 def add(obj) datastore.rpush @title, serialize(obj) len = size if @max_size and len>@max_size datastore.ltrim @title, len-@max_size, -1 end end |
#clear ⇒ Object
49 50 51 52 |
# File 'lib/collectr/redis/redis_array.rb', line 49 def clear datastore.ltrim @title, 0, 0 datastore.lpop @title end |
#datastore ⇒ Object
13 14 15 |
# File 'lib/collectr/redis/redis_array.rb', line 13 def datastore @datastore ||= Redis.current end |
#delete(obj) ⇒ Object
37 38 39 |
# File 'lib/collectr/redis/redis_array.rb', line 37 def delete(obj) datastore.lrem @title, 0, serialize(obj) end |
#pop ⇒ Object
33 34 35 |
# File 'lib/collectr/redis/redis_array.rb', line 33 def pop deserialize(datastore.lpop @title) end |
#size ⇒ Object
41 42 43 |
# File 'lib/collectr/redis/redis_array.rb', line 41 def size datastore.llen @title end |
#to_a ⇒ Object
45 46 47 |
# File 'lib/collectr/redis/redis_array.rb', line 45 def to_a datastore.lrange(@title, 0, -1).collect{ |i| deserialize(i) } end |