Module: RedisCopy::KeyEmitter
- Included in:
- Default
- Defined in:
- lib/redis-copy/key-emitter.rb
Overview
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.
Defined Under Namespace
Classes: Default
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.load(redis, ui, options = {}) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/redis-copy/key-emitter.rb', line 10 def self.load(redis, ui, = {}) key_emitter = .fetch(:key_emitter, :default) const_name = key_emitter.to_s.camelize require "redis-copy/key-emitter/#{key_emitter}" unless const_defined?(const_name) const_get(const_name).new(redis, ui, ) end |
Instance Method Details
#initialize(redis, ui, options = {}) ⇒ Object
19 20 21 22 23 |
# File 'lib/redis-copy/key-emitter.rb', line 19 def initialize(redis, ui, = {}) @redis = redis @ui = ui = end |
#keys ⇒ Enumerable<String>
26 27 28 29 |
# File 'lib/redis-copy/key-emitter.rb', line 26 def keys return super if defined?(super) raise NotImplementedError end |
#to_s ⇒ Object
31 32 33 |
# File 'lib/redis-copy/key-emitter.rb', line 31 def to_s self.class.name.demodulize.humanize end |