class Collectr::RedisHash

Attributes

store[R]

Public Class Methods

new(name, options={}) click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 9
def initialize(name, options={})
  @title = name
  # Use raw only when both the keys and values are strings.
  @raw = options.fetch(:raw) { false }
  @store = Redis.current
  @expires_in = options[:expires_in]
end

Public Instance Methods

[](key) click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 17
def [](key)
  deserialize @store.hget(@title, serialize(key))
end
[]=(key, val) click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 21
def []=(key, val)
  @store.hset @title, serialize(key), serialize(val)
end
cache(key, options={}) { |key| ... } click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 38
def cache(key, options={})
  result = self[key]
  if result.nil? and block_given?
    result = yield key
    self[key] = result
  else
    raise KeyError
  end
  result
end
clear() click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 88
def clear
  destroy
  # keys.each{ |key| delete key }
end
delete(key) click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 53
def delete(key)
  @store.hdel @title, serialize(key)
end
destroy() click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 49
def destroy
  @store.del @title
end
empty?() click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 57
def empty?
  size == 0
end
fetch(key, options={}) { |key| ... } click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 25
def fetch(key, options={})
  result = self[key]
  if result.nil?
    return nil if has_key?(key)
    if block_given?
      result = yield key
    else
      raise KeyError
    end
  end
  result
end
has_key?(key) click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 65
def has_key?(key)
  key? key
end
key?(key) click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 68
def key?(key)
  @store.hexists @title, serialize(key)
end
keys() click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 72
def keys
  @store.hkeys(@title).collect{ |key| deserialize key }
end
size() click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 61
def size
  @store.hlen @title
end
to_hash() click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 80
def to_hash
  hash = {}
  @store.hgetall(@title).each do |key, val|
    hash[deserialize(key)] = deserialize(val)
  end
  hash
end
values() click to toggle source
# File lib/collectr/redis/redis_hash.rb, line 76
def values
  keys.collect{ |key| self[key] }
end