Class: Wayfarer::Redis::Barrier
- Inherits:
-
Struct
- Object
- Struct
- Wayfarer::Redis::Barrier
- Includes:
- Connection
- Defined in:
- lib/wayfarer/redis/barrier.rb
Instance Attribute Summary collapse
-
#batch ⇒ Object
Returns the value of attribute batch.
Instance Method Summary collapse
- #peek(urls) ⇒ Object
- #redis_key ⇒ Object
- #reset! ⇒ Object
- #seen?(url) ⇒ Boolean
- #unsee(url) ⇒ Object
Instance Attribute Details
#batch ⇒ Object
Returns the value of attribute batch
5 6 7 |
# File 'lib/wayfarer/redis/barrier.rb', line 5 def batch @batch end |
Instance Method Details
#peek(urls) ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/wayfarer/redis/barrier.rb', line 20 def peek(urls) major, minor, = Version.determine # SMISMEMBER is only supported on Redis >= 6.2.0 if major > 6 || (major == 6 && minor >= 2) redis { |conn| conn.smismember(redis_key, urls) }.map { |val| val == 1 } else urls.map { |url| redis { |conn| conn.sismember(redis_key, url) } } end end |
#redis_key ⇒ Object
8 9 10 |
# File 'lib/wayfarer/redis/barrier.rb', line 8 def redis_key "wayfarer-barrier-#{batch}" end |
#reset! ⇒ Object
12 13 14 |
# File 'lib/wayfarer/redis/barrier.rb', line 12 def reset! redis { |conn| conn.del(redis_key) } end |
#seen?(url) ⇒ Boolean
16 17 18 |
# File 'lib/wayfarer/redis/barrier.rb', line 16 def seen?(url) !redis { |conn| conn.sadd(redis_key, url) } end |
#unsee(url) ⇒ Object
31 32 33 |
# File 'lib/wayfarer/redis/barrier.rb', line 31 def unsee(url) redis { |conn| conn.srem(redis_key, url) } end |