class Wayfarer::Frontiers::RedisFrontier

A Redis frontier @api private

Public Class Methods

new(config) click to toggle source
Calls superclass method Wayfarer::Frontiers::Frontier::new
# File lib/wayfarer/frontiers/redis_frontier.rb, line 10
def initialize(config)
  @conn = Redis.new(config.redis_opts)
  super(config)
end

Public Instance Methods

cache(*uris) click to toggle source

@override

# File lib/wayfarer/frontiers/redis_frontier.rb, line 36
def cache(*uris)
  @conn.sadd(cached_uris_key, uris.map(&:to_s)) if uris.any?
end
cached?(uri) click to toggle source

@override

# File lib/wayfarer/frontiers/redis_frontier.rb, line 41
def cached?(uri)
  @conn.sismember(cached_uris_key, uri.to_s)
end
current_uris() click to toggle source

@override

# File lib/wayfarer/frontiers/redis_frontier.rb, line 16
def current_uris
  @conn.smembers(current_uris_key).map { |str| URI(str) }
end
free() click to toggle source

@override

# File lib/wayfarer/frontiers/redis_frontier.rb, line 46
def free
  [current_uris_key, staged_uris_key, cached_uris_key].each do |key|
    @conn.del(key)
  end

  @conn.disconnect!
end
stage(*uris) click to toggle source

@override

# File lib/wayfarer/frontiers/redis_frontier.rb, line 26
def stage(*uris)
  @conn.sadd(staged_uris_key, uris.map(&:to_s)) if uris.any?
end
staged?(uri) click to toggle source

@override

# File lib/wayfarer/frontiers/redis_frontier.rb, line 31
def staged?(uri)
  @conn.sismember(staged_uris_key, uri.to_s)
end
staged_uris() click to toggle source

@override

# File lib/wayfarer/frontiers/redis_frontier.rb, line 21
def staged_uris
  @conn.smembers(staged_uris_key).map { |str| URI(str) }
end

Private Instance Methods

cached_uris_key() click to toggle source
# File lib/wayfarer/frontiers/redis_frontier.rb, line 78
def cached_uris_key
  "#{@config.uuid}_cached_uris"
end
current_uris_key() click to toggle source
# File lib/wayfarer/frontiers/redis_frontier.rb, line 70
def current_uris_key
  "#{@config.uuid}_current_uris"
end
filter_staged_uris!() click to toggle source
# File lib/wayfarer/frontiers/redis_frontier.rb, line 66
def filter_staged_uris!
  @conn.sdiffstore(staged_uris_key, staged_uris_key, cached_uris_key)
end
reset_staged_uris!() click to toggle source
# File lib/wayfarer/frontiers/redis_frontier.rb, line 56
def reset_staged_uris!
  @conn.del(staged_uris_key)
end
staged_uris_key() click to toggle source
# File lib/wayfarer/frontiers/redis_frontier.rb, line 74
def staged_uris_key
  "#{@config.uuid}_staged_uris"
end
swap!() click to toggle source

@override

# File lib/wayfarer/frontiers/redis_frontier.rb, line 61
def swap!
  # Achieve: @current_uris = @staged_uris
  @conn.rename(staged_uris_key, current_uris_key)
end