module RedisCopy::KeyEmitter

A Key emitter emits keys. This is built to be an abstraction on top of redis.keys(‘*’) (implemented by RedisCopy::KeyEmitter::Default), but should allow smarter implementations to be built that can handle billion-key dbs without blocking on IO.

Public Class Methods

new(redis, ui, options = {}) click to toggle source

@param redis [Redis] @param options [Hash<Symbol:String>] @option options [String] :pattern (‘*’)

# File lib/redis-copy/key-emitter.rb, line 15
def initialize(redis, ui, options = {})
  @redis    = redis
  @ui       = ui
  @options  = options
end

Public Instance Methods

dbsize() click to toggle source
# File lib/redis-copy/key-emitter.rb, line 31
def dbsize
  @redis.dbsize
end
keys() click to toggle source

@return [Enumerable<String>]

Calls superclass method
# File lib/redis-copy/key-emitter.rb, line 22
def keys
  return super if defined?(super)
  raise NotImplementedError
end
pattern() click to toggle source
# File lib/redis-copy/key-emitter.rb, line 27
def pattern
  @pattern ||= @options.fetch(:pattern) { '*' }
end
to_s() click to toggle source
# File lib/redis-copy/key-emitter.rb, line 35
def to_s
  self.class.name.demodulize
end