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.
8 9 10 11 12 |
# File 'lib/collectr/redis/redis_array.rb', line 8 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
18 19 20 |
# File 'lib/collectr/redis/redis_array.rb', line 18 def <<(obj) add obj end |
#[](n) ⇒ Object
30 31 32 |
# File 'lib/collectr/redis/redis_array.rb', line 30 def [](n) deserialize(datastore.lindex @title, n) end |
#add(obj) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/collectr/redis/redis_array.rb', line 22 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
50 51 52 53 |
# File 'lib/collectr/redis/redis_array.rb', line 50 def clear datastore.ltrim @title, 0, 0 datastore.lpop @title end |
#datastore ⇒ Object
14 15 16 |
# File 'lib/collectr/redis/redis_array.rb', line 14 def datastore @datastore ||= Redis.current end |
#delete(obj) ⇒ Object
38 39 40 |
# File 'lib/collectr/redis/redis_array.rb', line 38 def delete(obj) datastore.lrem @title, 0, serialize(obj) end |
#pop ⇒ Object
34 35 36 |
# File 'lib/collectr/redis/redis_array.rb', line 34 def pop deserialize(datastore.lpop @title) end |
#size ⇒ Object
42 43 44 |
# File 'lib/collectr/redis/redis_array.rb', line 42 def size datastore.llen @title end |
#to_a ⇒ Object
46 47 48 |
# File 'lib/collectr/redis/redis_array.rb', line 46 def to_a datastore.lrange(@title, 0, -1).collect{ |i| deserialize(i) } end |