Guest User

Untitled

a guest
Jul 16th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. require 'rubygems'
  2. require 'redis'
  3. require 'json'
  4.  
  5. class SetOfHashes
  6. def initialize(r)
  7. @redis = r
  8. end
  9.  
  10. def sadd(set_name, hashes)
  11. puts "adding #{set_name} with val: #{hashes.to_json}"
  12. @redis.sadd "hello", "world"
  13. @redis.sadd set_name, hashes.to_json
  14. end
  15.  
  16. def spop(set_name)
  17. val = @redis.spop(set_name)
  18. JSON.parse val if val
  19. end
  20.  
  21. def smove(src_set, dest_set, member)
  22. @redis.smove src_set, dest_set, member.to_json
  23. end
  24.  
  25. def sismember(set_name, member)
  26. @redis.sismember set_name, member.to_json
  27. end
  28.  
  29. def smembers(set_name)
  30. @redis.smembers.set_name.map { |member| JSON.parse member }
  31. end
  32.  
  33. def srandmember(set_name)
  34. val = @redis.srandmember(set_name)
  35. JSON.parse val if val
  36. end
  37.  
  38. def method_missing(method, *args, &block)
  39. if [:srem, :scard, :sinterstore, :sunion, :sunionstore, :sdiff, :sdiffstore].member?(method)
  40. @redis.send method, *args
  41. else
  42. super
  43. end
  44. end
  45.  
  46. end
  47.  
  48. set = SetOfHashes.new Redis.new
  49. set.sadd "food", { :pizza => "Lombardi's" }
  50. set.sadd "food", { :pizza => "Motorino" }
  51. puts set.spop "food"
  52. puts set.spop "food"
Add Comment
Please, Sign In to add comment