Class: Familia::HashKey
Instance Attribute Summary
Attributes inherited from RedisObject
#cache, #name, #parent, #redis
Instance Method Summary
collapse
-
#[](n) ⇒ Object
(also: #get)
-
#[]=(n, v) ⇒ Object
(also: #put, #store)
-
#all ⇒ Object
(also: #to_hash, #clone)
-
#decrement(n, by = 1) ⇒ Object
(also: #decr, #decrby)
-
#delete(n) ⇒ Object
(also: #remove, #rem, #del)
-
#empty? ⇒ Boolean
-
#fetch(n, default = nil) ⇒ Object
-
#has_key?(n) ⇒ Boolean
(also: #include?, #member?)
-
#increment(n, by = 1) ⇒ Object
(also: #incr, #incrby)
-
#keys ⇒ Object
-
#size ⇒ Object
(also: #length)
-
#update(h = {}) ⇒ Object
(also: #merge!)
-
#values ⇒ Object
-
#values_at(*names) ⇒ Object
Methods inherited from RedisObject
#class?, #clear_cache, #db, #dump_method, #echo, #exists?, #expire, #expireat, #from_redis, inherited, #initialize, #load_method, #move, #multi_from_redis, #parent?, #persist, #qstamp, #realttl, #rediskey, register, registration, #rename, #renamenx, #to_redis, #ttl, #type, #update_expiration
Instance Method Details
#[](n) ⇒ Object
Also known as:
get
830
831
832
|
# File 'lib/familia/redisobject.rb', line 830
def [] n
from_redis redis.hget(rediskey, n)
end
|
#[]=(n, v) ⇒ Object
Also known as:
put, store
817
818
819
820
821
822
823
824
825
826
|
# File 'lib/familia/redisobject.rb', line 817
def []= n, v
ret = redis.hset rediskey, n, to_redis(v)
update_expiration
ret
rescue TypeError => e
echo :hset, caller[0] if Familia.debug
klass = v.class
msg = "Cannot store #{n} => #{v.inspect} (#{klass}) in #{rediskey}"
raise e.class, msg
end
|
#all ⇒ Object
Also known as:
to_hash, clone
854
855
856
857
|
# File 'lib/familia/redisobject.rb', line 854
def all
redis.hgetall rediskey
end
|
#decrement(n, by = 1) ⇒ Object
Also known as:
decr, decrby
880
881
882
|
# File 'lib/familia/redisobject.rb', line 880
def decrement n, by=1
increment n, -by
end
|
#delete(n) ⇒ Object
Also known as:
remove, rem, del
867
868
869
|
# File 'lib/familia/redisobject.rb', line 867
def delete n
redis.hdel rediskey, n
end
|
#empty? ⇒ Boolean
813
814
815
|
# File 'lib/familia/redisobject.rb', line 813
def empty?
size == 0
end
|
#fetch(n, default = nil) ⇒ Object
835
836
837
838
839
840
841
842
843
|
# File 'lib/familia/redisobject.rb', line 835
def fetch n, default=nil
ret = self[n]
if ret.nil?
raise IndexError.new("No such index for: #{n}") if default.nil?
default
else
ret
end
end
|
#has_key?(n) ⇒ Boolean
Also known as:
include?, member?
861
862
863
|
# File 'lib/familia/redisobject.rb', line 861
def has_key? n
redis.hexists rediskey, n
end
|
#increment(n, by = 1) ⇒ Object
Also known as:
incr, incrby
874
875
876
|
# File 'lib/familia/redisobject.rb', line 874
def increment n, by=1
redis.hincrby(rediskey, n, by).to_i
end
|
#keys ⇒ Object
845
846
847
|
# File 'lib/familia/redisobject.rb', line 845
def keys
redis.hkeys rediskey
end
|
#size ⇒ Object
Also known as:
length
808
809
810
|
# File 'lib/familia/redisobject.rb', line 808
def size
redis.hlen rediskey
end
|
#update(h = {}) ⇒ Object
Also known as:
merge!
886
887
888
889
890
891
892
|
# File 'lib/familia/redisobject.rb', line 886
def update h={}
raise ArgumentError, "Argument to bulk_set must be a hash" unless Hash === h
data = h.inject([]){ |ret,pair| ret << [pair[0], to_redis(pair[1])] }.flatten
ret = redis.hmset(rediskey, *data)
update_expiration
ret
end
|
#values ⇒ Object
849
850
851
852
|
# File 'lib/familia/redisobject.rb', line 849
def values
el = redis.hvals(rediskey)
multi_from_redis *el
end
|
#values_at(*names) ⇒ Object
895
896
897
898
|
# File 'lib/familia/redisobject.rb', line 895
def values_at *names
el = redis.hmget(rediskey, *names.flatten.compact)
multi_from_redis *el
end
|