Sha256: 0446f8c6f01a8e04e98dfeb301c1c06e36b3528f6eff0c18f73f23fb733daa40
Contents?: true
Size: 873 Bytes
Versions: 3
Compression:
Stored size: 873 Bytes
Contents
module FakeRedis class ZSet < Hash def []=(key, val) super(key, _floatify(val)) end def identical_scores? values.uniq.size == 1 end # Increments the value of key by val def increment(key, val) self[key] += _floatify(val) end def select_by_score min, max min = _floatify(min, true) max = _floatify(max, false) select {|_,v| v >= min && v <= max } end private # Originally lifted from redis-rb def _floatify(str, increment = true) if (( inf = str.to_s.match(/^([+-])?inf/i) )) (inf[1] == "-" ? -1.0 : 1.0) / 0.0 elsif (( number = str.to_s.match(/^\((-?\d+)/i) )) number[1].to_i + (increment ? 1 : -1) else Float str.to_s end rescue ArgumentError raise Redis::CommandError, "ERR value is not a valid float" end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
fakeredis-0.9.2 | lib/fakeredis/zset.rb |
fakeredis-0.9.1 | lib/fakeredis/zset.rb |
fakeredis-0.9.0 | lib/fakeredis/zset.rb |