class CloudSesame::Domain::ClientModule::Caching::RailsCache

Public Class Methods

new(client, searchable) click to toggle source
# File lib/cloud_sesame/domain/client_module/caching/rails_cache.rb, line 9
def initialize(client, searchable)
  ensure_environment_exists
  super
end

Public Instance Methods

fetch(params) click to toggle source
# File lib/cloud_sesame/domain/client_module/caching/rails_cache.rb, line 14
def fetch(params)
  Rails.cache.fetch(hexdigest(params)) do
    results = search params
    OpenStruct.new(
      status: results.status,
      hits: results.hits,
      facets: results.facets
    )
  end
end

Private Instance Methods

ensure_environment_exists() click to toggle source
# File lib/cloud_sesame/domain/client_module/caching/rails_cache.rb, line 32
def ensure_environment_exists
  unless RailsCache.const_defined?(:Rails)
    raise Error::Caching, "Rails environment cannot be found"
  end
end
hexdigest(params) click to toggle source
# File lib/cloud_sesame/domain/client_module/caching/rails_cache.rb, line 27
def hexdigest(params)
  searchable_params = params.merge(searchable: @searchable)
  Digest::MD5.hexdigest Marshal.dump(searchable_params)
end