module Firebolt::Warmer

Public Instance Methods

warm() click to toggle source

Public instance methods

# File lib/firebolt/warmer.rb, line 8
def warm
  results = perform

  _warmer_write_results_to_cache(results)
  _warmer_reset_salt!

  results
end

Private Instance Methods

_warmer_expires_in() click to toggle source

Private instance methods

# File lib/firebolt/warmer.rb, line 22
def _warmer_expires_in
  @_warmer_expires_in ||= ::Firebolt.config.warming_frequency + 1.hour
end
_warmer_raise_failed_result() click to toggle source
# File lib/firebolt/warmer.rb, line 26
def _warmer_raise_failed_result
  raise "Warmer must return an object that responds to #each_pair."
end
_warmer_reset_salt!() click to toggle source
# File lib/firebolt/warmer.rb, line 30
def _warmer_reset_salt!
  ::Firebolt.reset_salt!(_warmer_salt)
end
_warmer_salt() click to toggle source
# File lib/firebolt/warmer.rb, line 34
def _warmer_salt
  @_warmer_salt ||= ::SecureRandom.hex
end
_warmer_salted_cache_key(suffix) click to toggle source
# File lib/firebolt/warmer.rb, line 38
def _warmer_salted_cache_key(suffix)
  cache_key_with_salt(suffix, _warmer_salt)
end
_warmer_write_results_to_cache(results) click to toggle source
# File lib/firebolt/warmer.rb, line 42
def _warmer_write_results_to_cache(results)
  _warmer_raise_failed_result unless results.respond_to?(:each_pair)

  results.each_pair do |key, value|
    cache_key = _warmer_salted_cache_key(key)
    ::Firebolt.config.cache.write(cache_key, value, :expires_in => _warmer_expires_in)
  end
end