Class: Cure::Strategy::Base

Inherits:
Object
  • Object
show all
Includes:
History
Defined in:
lib/cure/strategy/base.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from History

#history, #reset_history, #retrieve_history, #store_history

Constructor Details

#initialize(options) ⇒ Base

Returns a new instance of Base.



52
53
54
# File 'lib/cure/strategy/base.rb', line 52

def initialize(options)
  @options = options
end

Instance Attribute Details

#optionsHash

Additional details needed to make substitution.

Returns:

  • (Hash)


50
51
52
# File 'lib/cure/strategy/base.rb', line 50

def options
  @options
end

Instance Method Details

#extract(source_value, generator) ⇒ String

This will retrieve the (partial) value, then generate a new replacement.

Parameters:

Returns:

  • (String)


61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/cure/strategy/base.rb', line 61

def extract(source_value, generator)
  extracted_value = _retrieve_value(source_value)

  existing = retrieve_history(extracted_value)
  return _replace_value(source_value, existing) if existing

  generated_value = generator.generate(source_value).to_s
  value = _replace_value(source_value, generated_value)

  store_history(extracted_value, generated_value)

  value
end