Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'rubygems'
- require 'redis'
- require 'json'
- class SetOfHashes
- def initialize(r)
- @redis = r
- end
- def sadd(set_name, hashes)
- puts "adding #{set_name} with val: #{hashes.to_json}"
- @redis.sadd "hello", "world"
- @redis.sadd set_name, hashes.to_json
- end
- def spop(set_name)
- val = @redis.spop(set_name)
- JSON.parse val if val
- end
- def smove(src_set, dest_set, member)
- @redis.smove src_set, dest_set, member.to_json
- end
- def sismember(set_name, member)
- @redis.sismember set_name, member.to_json
- end
- def smembers(set_name)
- @redis.smembers.set_name.map { |member| JSON.parse member }
- end
- def srandmember(set_name)
- val = @redis.srandmember(set_name)
- JSON.parse val if val
- end
- def method_missing(method, *args, &block)
- if [:srem, :scard, :sinterstore, :sunion, :sunionstore, :sdiff, :sdiffstore].member?(method)
- @redis.send method, *args
- else
- super
- end
- end
- end
- set = SetOfHashes.new Redis.new
- set.sadd "food", { :pizza => "Lombardi's" }
- set.sadd "food", { :pizza => "Motorino" }
- puts set.spop "food"
- puts set.spop "food"
Add Comment
Please, Sign In to add comment