Module: MockRedis::ZsetMethods
- Includes:
- Assertions, UtilityMethods
- Included in:
- Database
- Defined in:
- lib/mock_redis/zset_methods.rb
Instance Method Summary collapse
- #zadd(key, score, member) ⇒ Object
- #zcard(key) ⇒ Object
- #zcount(key, min, max) ⇒ Object
- #zincrby(key, increment, member) ⇒ Object
- #zinterstore(destination, keys, options = {}) ⇒ Object
- #zrange(key, start, stop, options = {}) ⇒ Object
- #zrangebyscore(key, min, max, options = {}) ⇒ Object
- #zrank(key, member) ⇒ Object
- #zrem(key, member) ⇒ Object
- #zremrangebyrank(key, start, stop) ⇒ Object
- #zremrangebyscore(key, min, max) ⇒ Object
- #zrevrange(key, start, stop, options = {}) ⇒ Object
- #zrevrangebyscore(key, max, min, options = {}) ⇒ Object
- #zrevrank(key, member) ⇒ Object
- #zscore(key, member) ⇒ Object
- #zunionstore(destination, keys, options = {}) ⇒ Object
Instance Method Details
#zadd(key, score, member) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/mock_redis/zset_methods.rb', line 10 def zadd(key, score, member) assert_scorey(score) retval = !zscore(key, member) with_zset_at(key) {|z| z.add(score, member)} retval end |
#zcard(key) ⇒ Object
18 19 20 |
# File 'lib/mock_redis/zset_methods.rb', line 18 def zcard(key) with_zset_at(key, &:size) end |
#zcount(key, min, max) ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/mock_redis/zset_methods.rb', line 22 def zcount(key, min, max) assert_scorey(min, 'min or max') assert_scorey(max, 'min or max') with_zset_at(key) do |z| z.count do |score, _| score >= min && score <= max end end end |
#zincrby(key, increment, member) ⇒ Object
33 34 35 36 37 38 39 40 41 |
# File 'lib/mock_redis/zset_methods.rb', line 33 def zincrby(key, increment, member) assert_scorey(increment) with_zset_at(key) do |z| old_score = z.include?(member) ? z.score(member) : 0 new_score = old_score + increment z.add(new_score, member) new_score.to_s end end |
#zinterstore(destination, keys, options = {}) ⇒ Object
43 44 45 46 47 48 |
# File 'lib/mock_redis/zset_methods.rb', line 43 def zinterstore(destination, keys, ={}) assert_has_args(keys, 'zinterstore') data[destination] = combine_weighted_zsets(keys, , :intersection) zcard(destination) end |
#zrange(key, start, stop, options = {}) ⇒ Object
50 51 52 53 54 |
# File 'lib/mock_redis/zset_methods.rb', line 50 def zrange(key, start, stop, ={}) with_zset_at(key) do |z| to_response(z.sorted[start..stop], ) end end |
#zrangebyscore(key, min, max, options = {}) ⇒ Object
56 57 58 59 60 61 |
# File 'lib/mock_redis/zset_methods.rb', line 56 def zrangebyscore(key, min, max, ={}) with_zset_at(key) do |zset| all_results = zset.in_range(min, max) to_response(apply_limit(all_results, [:limit]), ) end end |
#zrank(key, member) ⇒ Object
63 64 65 |
# File 'lib/mock_redis/zset_methods.rb', line 63 def zrank(key, member) with_zset_at(key) {|z| z.sorted_members.index(member) } end |
#zrem(key, member) ⇒ Object
67 68 69 |
# File 'lib/mock_redis/zset_methods.rb', line 67 def zrem(key, member) with_zset_at(key) {|z| !!z.delete?(member)} end |
#zremrangebyrank(key, start, stop) ⇒ Object
77 78 79 80 81 |
# File 'lib/mock_redis/zset_methods.rb', line 77 def zremrangebyrank(key, start, stop) zrange(key, start, stop). each {|member| zrem(key, member)}. size end |
#zremrangebyscore(key, min, max) ⇒ Object
83 84 85 86 87 |
# File 'lib/mock_redis/zset_methods.rb', line 83 def zremrangebyscore(key, min, max) zrangebyscore(key, min, max). each {|member| zrem(key, member)}. size end |
#zrevrange(key, start, stop, options = {}) ⇒ Object
71 72 73 74 75 |
# File 'lib/mock_redis/zset_methods.rb', line 71 def zrevrange(key, start, stop, ={}) with_zset_at(key) do |z| to_response(z.sorted.reverse[start..stop], ) end end |
#zrevrangebyscore(key, max, min, options = {}) ⇒ Object
89 90 91 92 93 94 95 96 97 |
# File 'lib/mock_redis/zset_methods.rb', line 89 def zrevrangebyscore(key, max, min, ={}) with_zset_at(key) do |zset| to_response( apply_limit( zset.in_range(min, max).reverse, [:limit]), ) end end |
#zrevrank(key, member) ⇒ Object
99 100 101 |
# File 'lib/mock_redis/zset_methods.rb', line 99 def zrevrank(key, member) with_zset_at(key) {|z| z.sorted_members.reverse.index(member) } end |
#zscore(key, member) ⇒ Object
103 104 105 106 107 108 |
# File 'lib/mock_redis/zset_methods.rb', line 103 def zscore(key, member) with_zset_at(key) do |z| score = z.score(member) score.to_s if score end end |
#zunionstore(destination, keys, options = {}) ⇒ Object
110 111 112 113 114 115 |
# File 'lib/mock_redis/zset_methods.rb', line 110 def zunionstore(destination, keys, ={}) assert_has_args(keys, 'zunionstore') data[destination] = combine_weighted_zsets(keys, , :union) zcard(destination) end |