Module: RedisCopy::Strategy

Included in:
Classic, New
Defined in:
lib/redis-copy/strategy.rb,
lib/redis-copy/strategy/new.rb,
lib/redis-copy/strategy/classic.rb

Defined Under Namespace

Classes: Classic, New

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.load(source, destination, ui, options = {}) ⇒ Object

Parameters:

  • source (Redis)
  • destination (Redis)


10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/redis-copy/strategy.rb', line 10

def self.load(source, destination, ui, options = {})
  strategy = options.fetch(:strategy, :auto).to_sym
  new_compatible = [source, destination].all?(&New.method(:compatible?))
  copierklass = case strategy
                when :classic then Classic
                when :new
                  raise ArgumentError unless new_compatible
                  New
                when :auto
                  new_compatible ? New : Classic
                end
  copierklass.new(source, destination, ui, options)
end

Instance Method Details

#copy(key) ⇒ Boolean

Parameters:

  • key (String)

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


39
40
41
42
# File 'lib/redis-copy/strategy.rb', line 39

def copy(key)
  return super if defined? super
  raise NotImplementedError
end

#initialize(source, destination, ui, options = {}) ⇒ Object

Parameters:

  • source (Redis)
  • destination (Redis)


26
27
28
29
30
31
# File 'lib/redis-copy/strategy.rb', line 26

def initialize(source, destination, ui, options = {})
  @src = source
  @dst = destination
  @ui  = ui
  @opt = options.dup
end

#to_sObject



33
34
35
# File 'lib/redis-copy/strategy.rb', line 33

def to_s
  self.class.name.demodulize.humanize
end